dbus: Function for adding array of object paths and dictionaries
authorPatrik Flykt <patrik.flykt@linux.intel.com>
Mon, 20 Feb 2012 09:43:41 +0000 (11:43 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 24 Feb 2012 22:29:48 +0000 (23:29 +0100)
Function for adding an array of object paths and dictionaries to
D-Bus messages.

src/connman.h
src/dbus.c

index 916ced9..1d52b6c 100644 (file)
@@ -25,6 +25,8 @@
 
 #include <connman/dbus.h>
 
+dbus_bool_t __connman_dbus_append_objpath_dict_array(DBusMessage *msg,
+               connman_dbus_append_cb_t function, void *user_data);
 int __connman_dbus_init(DBusConnection *conn);
 void __connman_dbus_cleanup(void);
 
index 225eefb..e203991 100644 (file)
@@ -362,6 +362,32 @@ dbus_bool_t connman_dbus_setting_changed_array(const char *owner,
        return TRUE;
 }
 
+dbus_bool_t __connman_dbus_append_objpath_dict_array(DBusMessage *msg,
+               connman_dbus_append_cb_t function, void *user_data)
+{
+       DBusMessageIter iter, array;
+
+       if (msg == NULL || function == NULL)
+               return FALSE;
+
+       dbus_message_iter_init_append(msg, &iter);
+       dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
+                       DBUS_STRUCT_BEGIN_CHAR_AS_STRING
+                       DBUS_TYPE_OBJECT_PATH_AS_STRING
+                       DBUS_TYPE_ARRAY_AS_STRING
+                               DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING
+                                       DBUS_TYPE_STRING_AS_STRING
+                                       DBUS_TYPE_VARIANT_AS_STRING
+                               DBUS_DICT_ENTRY_END_CHAR_AS_STRING
+                       DBUS_STRUCT_END_CHAR_AS_STRING, &array);
+
+       function(&array, user_data);
+
+       dbus_message_iter_close_container(&iter, &array);
+
+       return TRUE;
+}
+
 DBusConnection *connman_dbus_get_connection(void)
 {
        if (connection == NULL)