* Fixed marshaling of D-Bus dictionary types
git-svn-id: http://dev.openwengo.org/svn/openwengo/wengophone-ng/branches/wengophone-dbus-api/libs/dbus@8808 30a43799-04e7-0310-8b2b-ea0d24f86d0e
This commit is contained in:
parent
8484b18054
commit
0084392c53
7 changed files with 47 additions and 27 deletions
|
@ -246,13 +246,9 @@ int MessageIter::get_array( void* ptr )
|
|||
return length;
|
||||
}
|
||||
|
||||
MessageIter MessageIter::new_array( const char* sig )
|
||||
int MessageIter::array_length()
|
||||
{
|
||||
MessageIter arr(msg());
|
||||
dbus_message_iter_open_container(
|
||||
(DBusMessageIter*)&_iter, DBUS_TYPE_ARRAY, sig, (DBusMessageIter*)&(arr._iter)
|
||||
);
|
||||
return arr;
|
||||
return dbus_message_iter_get_array_len((DBusMessageIter*)&_iter);
|
||||
}
|
||||
|
||||
bool MessageIter::is_array()
|
||||
|
@ -260,25 +256,20 @@ bool MessageIter::is_array()
|
|||
return dbus_message_iter_get_arg_type((DBusMessageIter*)&_iter) == DBUS_TYPE_ARRAY;
|
||||
}
|
||||
|
||||
int MessageIter::array_length()
|
||||
{
|
||||
return dbus_message_iter_get_array_len((DBusMessageIter*)&_iter);
|
||||
}
|
||||
|
||||
MessageIter MessageIter::new_dict_entry()
|
||||
{
|
||||
MessageIter ent(msg());
|
||||
dbus_message_iter_open_container(
|
||||
(DBusMessageIter*)_iter, DBUS_TYPE_DICT_ENTRY, 0, (DBusMessageIter*)&(ent._iter)
|
||||
);
|
||||
return ent;
|
||||
}
|
||||
|
||||
bool MessageIter::is_dict()
|
||||
{
|
||||
return is_array() && dbus_message_iter_get_element_type((DBusMessageIter*)_iter) == DBUS_TYPE_DICT_ENTRY;
|
||||
}
|
||||
|
||||
MessageIter MessageIter::new_array( const char* sig )
|
||||
{
|
||||
MessageIter arr(msg());
|
||||
dbus_message_iter_open_container(
|
||||
(DBusMessageIter*)&_iter, DBUS_TYPE_ARRAY, sig, (DBusMessageIter*)&(arr._iter)
|
||||
);
|
||||
return arr;
|
||||
}
|
||||
|
||||
MessageIter MessageIter::new_variant( const char* sig )
|
||||
{
|
||||
MessageIter var(msg());
|
||||
|
@ -292,11 +283,20 @@ MessageIter MessageIter::new_struct()
|
|||
{
|
||||
MessageIter stu(msg());
|
||||
dbus_message_iter_open_container(
|
||||
(DBusMessageIter*)_iter, DBUS_TYPE_STRUCT, 0, (DBusMessageIter*)&(stu._iter)
|
||||
(DBusMessageIter*)_iter, DBUS_TYPE_STRUCT, NULL, (DBusMessageIter*)&(stu._iter)
|
||||
);
|
||||
return stu;
|
||||
}
|
||||
|
||||
MessageIter MessageIter::new_dict_entry()
|
||||
{
|
||||
MessageIter ent(msg());
|
||||
dbus_message_iter_open_container(
|
||||
(DBusMessageIter*)_iter, DBUS_TYPE_DICT_ENTRY, NULL, (DBusMessageIter*)&(ent._iter)
|
||||
);
|
||||
return ent;
|
||||
}
|
||||
|
||||
void MessageIter::close_container( MessageIter& container )
|
||||
{
|
||||
dbus_message_iter_close_container((DBusMessageIter*)&_iter, (DBusMessageIter*)&(container._iter));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue