* 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)

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

@ -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;