* 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:
pdurante 2007-07-06 12:44:57 +00:00
parent 31843c4a7c
commit b116f68663
7 changed files with 15 additions and 32 deletions

View file

@ -87,7 +87,7 @@ void HalDeviceProxy::PropertyModifiedCb( const DBus::SignalMessage& sig )
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;
std::cout << "encountered condition " << condition << std::endl;
std::cout << "encountered condition " << condition << " in " << path() << std::endl;
}
DBus::BusDispatcher dispatcher;

View file

@ -117,8 +117,6 @@ public:
int get_array( void* ptr );
int array_length();
bool is_array();
bool is_dict();

View file

@ -153,8 +153,6 @@ DBusHandlerResult Connection::Private::message_filter_stub( DBusConnection* conn
{
MessageSlot* slot = static_cast<MessageSlot*>(data);
debug_log("incoming message on connection %p", conn);
Message msg = Message(new Message::Private(dmsg));
return slot && !slot->empty() && slot->call(msg)
@ -268,7 +266,7 @@ bool Connection::register_bus()
bool r = dbus_bus_register(_pvt->conn, e);
if(e) throw (e);
if(e) throw (e);
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
if(e) throw Error(e);
if(e) throw Error(e);
// this->remove_match("destination");

View file

@ -43,15 +43,18 @@ bool MessageIter::at_end()
{
return type() == DBUS_TYPE_INVALID;
}
bool MessageIter::has_next()
{
return dbus_message_iter_has_next((DBusMessageIter*)&_iter);
}
MessageIter& MessageIter::operator ++()
{
dbus_message_iter_next((DBusMessageIter*)&_iter);
return (*this);
}
MessageIter MessageIter::operator ++(int)
{
MessageIter copy(*this);
@ -246,11 +249,6 @@ int MessageIter::get_array( void* ptr )
return length;
}
int MessageIter::array_length()
{
return dbus_message_iter_get_array_len((DBusMessageIter*)&_iter);
}
bool MessageIter::is_array()
{
return dbus_message_iter_get_arg_type((DBusMessageIter*)&_iter) == DBUS_TYPE_ARRAY;

View file

@ -327,9 +327,12 @@ bool ObjectProxy::handle_message( const Message& msg )
const SignalMessage& smsg = reinterpret_cast<const SignalMessage&>(msg);
const char* interface = smsg.interface();
const char* member = smsg.member();
const char* objpath = smsg.path();
debug_log("filtered signal %s(in %s) from remote object %s",
member, interface, msg.sender());
if( objpath != path() ) return false;
debug_log("filtered signal %s(in %s) from %s to object %s",
member, interface, msg.sender(), objpath);
InterfaceProxy* ii = find_interface(interface);
if( ii )
@ -341,20 +344,6 @@ bool ObjectProxy::handle_message( const Message& msg )
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:
{
return false;

View file

@ -59,7 +59,7 @@ Server::Server( const char* address )
InternalError 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);

View file

@ -58,13 +58,13 @@ int main( int argc, char** argv )
{
systembus = false;
path = argv[1];
service = argc > 1 ? argv[2] : 0;
service = argc > 2 ? argv[2] : 0;
}
else
{
systembus = true;
path = argv[2];
service = argc > 2 ? argv[3] : 0;
service = argc > 3 ? argv[3] : 0;
}
DBus::default_dispatcher = &dispatcher;