From 328d81c6cea8523694ca008e9f08008326f46439 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sat, 19 Dec 2009 15:01:32 -0800 Subject: [PATCH] Add D-Bus helper for array property changed signals --- include/dbus.h | 3 +++ src/dbus.c | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/include/dbus.h b/include/dbus.h index 83f24f9..fbbc973 100644 --- a/include/dbus.h +++ b/include/dbus.h @@ -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) diff --git a/src/dbus.c b/src/dbus.c index 2253eaf..884d78a 100644 --- a/src/dbus.c +++ b/src/dbus.c @@ -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) -- 2.7.4