Add D-Bus helper for array property changed signals
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 19 Dec 2009 23:01:32 +0000 (15:01 -0800)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 19 Dec 2009 23:01:32 +0000 (15:01 -0800)
include/dbus.h
src/dbus.c

index 83f24f9..fbbc973 100644 (file)
@@ -65,6 +65,9 @@ dbus_bool_t connman_dbus_property_changed_basic(const char *path,
 dbus_bool_t connman_dbus_property_changed_dict(const char *path,
                                const char *interface, const char *key,
                        connman_dbus_append_cb_t function, void *user_data);
+dbus_bool_t connman_dbus_property_changed_array(const char *path,
+                       const char *interface, const char *key, int type,
+                       connman_dbus_append_cb_t function, void *user_data);
 
 static inline void connman_dbus_dict_open(DBusMessageIter *iter,
                                                        DBusMessageIter *dict)
index 2253eaf..884d78a 100644 (file)
@@ -247,6 +247,29 @@ dbus_bool_t connman_dbus_property_changed_dict(const char *path,
        return TRUE;
 }
 
+dbus_bool_t connman_dbus_property_changed_array(const char *path,
+                       const char *interface, const char *key, int type,
+                       connman_dbus_append_cb_t function, void *user_data)
+{
+       DBusMessage *signal;
+       DBusMessageIter iter;
+
+       if (path == NULL)
+               return FALSE;
+
+       signal = dbus_message_new_signal(path, interface, "PropertyChanged");
+       if (signal == NULL)
+               return FALSE;
+
+       dbus_message_iter_init_append(signal, &iter);
+       connman_dbus_property_append_variable_array(&iter, key, type,
+                                                       function, user_data);
+
+       g_dbus_send_message(connection, signal);
+
+       return TRUE;
+}
+
 DBusConnection *connman_dbus_get_connection(void)
 {
        if (connection == NULL)