From 28a77bb7c841ce428071f6b6edd3539e1f8dc16a Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Mon, 16 Apr 2007 21:34:08 +0000 Subject: Move append_dict_entry to utils/common and change the name to dbus_message_iter_append_dict_entry. --- common/dbus-helper.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'common/dbus-helper.c') diff --git a/common/dbus-helper.c b/common/dbus-helper.c index 7c14952b..d0082451 100644 --- a/common/dbus-helper.c +++ b/common/dbus-helper.c @@ -209,3 +209,38 @@ dbus_bool_t dbus_connection_unregister_interface(DBusConnection *connection, { return TRUE; } + +void dbus_message_iter_append_dict_entry(DBusMessageIter *dict, + const char *key, int type, void *val) +{ + DBusMessageIter entry; + DBusMessageIter value; + char *sig; + + dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY, NULL, &entry); + + dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); + + switch (type) { + case DBUS_TYPE_STRING: + sig = DBUS_TYPE_STRING_AS_STRING; + break; + case DBUS_TYPE_UINT32: + sig = DBUS_TYPE_UINT32_AS_STRING; + break; + case DBUS_TYPE_BOOLEAN: + sig = DBUS_TYPE_BOOLEAN_AS_STRING; + break; + default: + sig = DBUS_TYPE_VARIANT_AS_STRING; + break; + } + + dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT, sig, &value); + + dbus_message_iter_append_basic(&value, type, val); + + dbus_message_iter_close_container(&entry, &value); + + dbus_message_iter_close_container(dict, &entry); +} -- cgit