diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2015-04-14 16:58:41 +0300 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2015-04-17 14:15:47 +0300 |
commit | 54a3f7b2b18f971a7d423d7b11f393cf90789f0e (patch) | |
tree | f4099f885a79f2f5dfbbafdffcf7a69ff3fd34a4 /src/dbus-common.c | |
parent | 5e418c30cb5f8565bd8871d56168cae4af8d45b0 (diff) | |
download | bluez-54a3f7b2b18f971a7d423d7b11f393cf90789f0e.tar.gz |
core/dbus-common: Add dict helpers for basic keys
The specification allows any basic type to be key:
'A DICT_ENTRY works exactly like a struct, but rather than parentheses
it uses curly braces, and it has more restrictions. The restrictions
are: it occurs only as an array element type; it has exactly two
single complete types inside the curly braces; the first single
complete type (the "key") must be a basic type rather than a
container type...'
Diffstat (limited to 'src/dbus-common.c')
-rw-r--r-- | src/dbus-common.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/dbus-common.c b/src/dbus-common.c index 936616bdf..adb0a7a4e 100644 --- a/src/dbus-common.c +++ b/src/dbus-common.c @@ -83,8 +83,8 @@ static void append_array_variant(DBusMessageIter *iter, int type, void *val, dbus_message_iter_close_container(iter, &variant); } -void dict_append_entry(DBusMessageIter *dict, - const char *key, int type, void *val) +void dict_append_basic(DBusMessageIter *dict, int key_type, const void *key, + int type, void *val) { DBusMessageIter entry; @@ -97,28 +97,43 @@ void dict_append_entry(DBusMessageIter *dict, dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY, NULL, &entry); - dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); + dbus_message_iter_append_basic(&entry, key_type, key); append_variant(&entry, type, val); dbus_message_iter_close_container(dict, &entry); + } -void dict_append_array(DBusMessageIter *dict, const char *key, int type, - void *val, int n_elements) +void dict_append_entry(DBusMessageIter *dict, + const char *key, int type, void *val) +{ + dict_append_basic(dict, DBUS_TYPE_STRING, &key, type, val); +} + +void dict_append_basic_array(DBusMessageIter *dict, int key_type, + const void *key, int type, void *val, + int n_elements) { DBusMessageIter entry; dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY, NULL, &entry); - dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); + dbus_message_iter_append_basic(&entry, key_type, key); append_array_variant(&entry, type, val, n_elements); dbus_message_iter_close_container(dict, &entry); } +void dict_append_array(DBusMessageIter *dict, const char *key, int type, + void *val, int n_elements) +{ + dict_append_basic_array(dict, DBUS_TYPE_STRING, &key, type, val, + n_elements); +} + void set_dbus_connection(DBusConnection *conn) { connection = conn; |