* Fixed a bug where signals would not be always forwarded to the appropriate local proxy
* Fixed incorrect parsing of command line arguments in dbusxx-introspect (Sergey Struzh) * Removed deprecated method MessageIter::array_length * Some cleanup git-svn-id: http://dev.openwengo.org/svn/openwengo/wengophone-ng/branches/wengophone-dbus-api/libs/dbus@11870 30a43799-04e7-0310-8b2b-ea0d24f86d0e
This commit is contained in:
parent
31843c4a7c
commit
b116f68663
7 changed files with 15 additions and 32 deletions
|
@ -87,7 +87,7 @@ void HalDeviceProxy::PropertyModifiedCb( const DBus::SignalMessage& sig )
|
||||||
|
|
||||||
arr >> hp;
|
arr >> hp;
|
||||||
|
|
||||||
std::cout << "modified property " << hp._1 << std::endl;
|
std::cout << "modified property " << hp._1 << " in " << path() << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ void HalDeviceProxy::ConditionCb( const DBus::SignalMessage& sig )
|
||||||
|
|
||||||
it >> condition;
|
it >> condition;
|
||||||
|
|
||||||
std::cout << "encountered condition " << condition << std::endl;
|
std::cout << "encountered condition " << condition << " in " << path() << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
DBus::BusDispatcher dispatcher;
|
DBus::BusDispatcher dispatcher;
|
||||||
|
|
|
@ -117,8 +117,6 @@ public:
|
||||||
|
|
||||||
int get_array( void* ptr );
|
int get_array( void* ptr );
|
||||||
|
|
||||||
int array_length();
|
|
||||||
|
|
||||||
bool is_array();
|
bool is_array();
|
||||||
|
|
||||||
bool is_dict();
|
bool is_dict();
|
||||||
|
|
|
@ -153,8 +153,6 @@ DBusHandlerResult Connection::Private::message_filter_stub( DBusConnection* conn
|
||||||
{
|
{
|
||||||
MessageSlot* slot = static_cast<MessageSlot*>(data);
|
MessageSlot* slot = static_cast<MessageSlot*>(data);
|
||||||
|
|
||||||
debug_log("incoming message on connection %p", conn);
|
|
||||||
|
|
||||||
Message msg = Message(new Message::Private(dmsg));
|
Message msg = Message(new Message::Private(dmsg));
|
||||||
|
|
||||||
return slot && !slot->empty() && slot->call(msg)
|
return slot && !slot->empty() && slot->call(msg)
|
||||||
|
@ -268,7 +266,7 @@ bool Connection::register_bus()
|
||||||
|
|
||||||
bool r = dbus_bus_register(_pvt->conn, e);
|
bool r = dbus_bus_register(_pvt->conn, e);
|
||||||
|
|
||||||
if(e) throw (e);
|
if(e) throw (e);
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -369,7 +367,7 @@ void Connection::request_name( const char* name, int flags )
|
||||||
|
|
||||||
dbus_bus_request_name(_pvt->conn, name, flags, e); //we deliberately don't check return value
|
dbus_bus_request_name(_pvt->conn, name, flags, e); //we deliberately don't check return value
|
||||||
|
|
||||||
if(e) throw Error(e);
|
if(e) throw Error(e);
|
||||||
|
|
||||||
// this->remove_match("destination");
|
// this->remove_match("destination");
|
||||||
|
|
||||||
|
|
|
@ -43,15 +43,18 @@ bool MessageIter::at_end()
|
||||||
{
|
{
|
||||||
return type() == DBUS_TYPE_INVALID;
|
return type() == DBUS_TYPE_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MessageIter::has_next()
|
bool MessageIter::has_next()
|
||||||
{
|
{
|
||||||
return dbus_message_iter_has_next((DBusMessageIter*)&_iter);
|
return dbus_message_iter_has_next((DBusMessageIter*)&_iter);
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageIter& MessageIter::operator ++()
|
MessageIter& MessageIter::operator ++()
|
||||||
{
|
{
|
||||||
dbus_message_iter_next((DBusMessageIter*)&_iter);
|
dbus_message_iter_next((DBusMessageIter*)&_iter);
|
||||||
return (*this);
|
return (*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageIter MessageIter::operator ++(int)
|
MessageIter MessageIter::operator ++(int)
|
||||||
{
|
{
|
||||||
MessageIter copy(*this);
|
MessageIter copy(*this);
|
||||||
|
@ -246,11 +249,6 @@ int MessageIter::get_array( void* ptr )
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
int MessageIter::array_length()
|
|
||||||
{
|
|
||||||
return dbus_message_iter_get_array_len((DBusMessageIter*)&_iter);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MessageIter::is_array()
|
bool MessageIter::is_array()
|
||||||
{
|
{
|
||||||
return dbus_message_iter_get_arg_type((DBusMessageIter*)&_iter) == DBUS_TYPE_ARRAY;
|
return dbus_message_iter_get_arg_type((DBusMessageIter*)&_iter) == DBUS_TYPE_ARRAY;
|
||||||
|
|
|
@ -327,9 +327,12 @@ bool ObjectProxy::handle_message( const Message& msg )
|
||||||
const SignalMessage& smsg = reinterpret_cast<const SignalMessage&>(msg);
|
const SignalMessage& smsg = reinterpret_cast<const SignalMessage&>(msg);
|
||||||
const char* interface = smsg.interface();
|
const char* interface = smsg.interface();
|
||||||
const char* member = smsg.member();
|
const char* member = smsg.member();
|
||||||
|
const char* objpath = smsg.path();
|
||||||
|
|
||||||
debug_log("filtered signal %s(in %s) from remote object %s",
|
if( objpath != path() ) return false;
|
||||||
member, interface, msg.sender());
|
|
||||||
|
debug_log("filtered signal %s(in %s) from %s to object %s",
|
||||||
|
member, interface, msg.sender(), objpath);
|
||||||
|
|
||||||
InterfaceProxy* ii = find_interface(interface);
|
InterfaceProxy* ii = find_interface(interface);
|
||||||
if( ii )
|
if( ii )
|
||||||
|
@ -341,20 +344,6 @@ bool ObjectProxy::handle_message( const Message& msg )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case DBUS_MESSAGE_TYPE_METHOD_RETURN:
|
|
||||||
{
|
|
||||||
debug_log("filtered method return from remote object %s", msg.sender());
|
|
||||||
|
|
||||||
//TODO?
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
case DBUS_MESSAGE_TYPE_ERROR:
|
|
||||||
{
|
|
||||||
debug_log("filtered error from remote object %s", msg.sender());
|
|
||||||
|
|
||||||
//TODO?
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -59,7 +59,7 @@ Server::Server( const char* address )
|
||||||
InternalError e;
|
InternalError e;
|
||||||
DBusServer* server = dbus_server_listen(address, e);
|
DBusServer* server = dbus_server_listen(address, e);
|
||||||
|
|
||||||
if(e) throw Error(e);
|
if(e) throw Error(e);
|
||||||
|
|
||||||
debug_log("server 0x%08x listening on %s", server, address);
|
debug_log("server 0x%08x listening on %s", server, address);
|
||||||
|
|
||||||
|
|
|
@ -58,13 +58,13 @@ int main( int argc, char** argv )
|
||||||
{
|
{
|
||||||
systembus = false;
|
systembus = false;
|
||||||
path = argv[1];
|
path = argv[1];
|
||||||
service = argc > 1 ? argv[2] : 0;
|
service = argc > 2 ? argv[2] : 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
systembus = true;
|
systembus = true;
|
||||||
path = argv[2];
|
path = argv[2];
|
||||||
service = argc > 2 ? argv[3] : 0;
|
service = argc > 3 ? argv[3] : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DBus::default_dispatcher = &dispatcher;
|
DBus::default_dispatcher = &dispatcher;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue