Create another helper for fixed array properties
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 19 Dec 2009 20:10:17 +0000 (12:10 -0800)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 19 Dec 2009 20:10:17 +0000 (12:10 -0800)
include/dbus.h
src/dbus.c

index 6a1feb9..2b75d36 100644 (file)
@@ -50,6 +50,8 @@ DBusConnection *connman_dbus_get_connection(void);
 
 void connman_dbus_property_append_variant(DBusMessageIter *property,
                                        const char *key, int type, void *val);
+void connman_dbus_property_append_fixed_array(DBusMessageIter *iter,
+                               const char *key, int type, void *val, int len);
 void connman_dbus_property_append_variable_array(DBusMessageIter *dict,
                const char *key, int type, connman_dbus_append_cb_t function);
 
index 1b592d3..e1189fe 100644 (file)
@@ -118,6 +118,34 @@ void connman_dbus_property_append_variant(DBusMessageIter *iter,
        dbus_message_iter_close_container(iter, &value);
 }
 
+void connman_dbus_property_append_fixed_array(DBusMessageIter *iter,
+                               const char *key, int type, void *val, int len)
+{
+       DBusMessageIter value, array;
+       const char *variant_sig, *array_sig;
+
+       switch (type) {
+       case DBUS_TYPE_BYTE:
+               variant_sig = DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_BYTE_AS_STRING;
+               array_sig = DBUS_TYPE_BYTE_AS_STRING;
+               break;
+       default:
+               return;
+       }
+
+       dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &key);
+
+       dbus_message_iter_open_container(iter, DBUS_TYPE_VARIANT,
+                                                       variant_sig, &value);
+
+       dbus_message_iter_open_container(&value, DBUS_TYPE_ARRAY,
+                                                       array_sig, &array);
+       dbus_message_iter_append_fixed_array(&array, type, val, len);
+       dbus_message_iter_close_container(&value, &array);
+
+       dbus_message_iter_close_container(iter, &value);
+}
+
 void connman_dbus_property_append_variable_array(DBusMessageIter *iter,
                const char *key, int type, connman_dbus_append_cb_t function)
 {
@@ -167,32 +195,12 @@ void connman_dbus_dict_append_variant(DBusMessageIter *dict,
 void connman_dbus_dict_append_fixed_array(DBusMessageIter *dict,
                                const char *key, int type, void *val, int len)
 {
-       DBusMessageIter entry, value, array;
-       const char *variant_sig, *array_sig;
-
-       switch (type) {
-       case DBUS_TYPE_BYTE:
-               variant_sig = DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_BYTE_AS_STRING;
-               array_sig = DBUS_TYPE_BYTE_AS_STRING;
-               break;
-       default:
-               return;
-       }
+       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_open_container(&entry, DBUS_TYPE_VARIANT,
-                                                       variant_sig, &value);
-
-       dbus_message_iter_open_container(&value, DBUS_TYPE_ARRAY,
-                                                       array_sig, &array);
-       dbus_message_iter_append_fixed_array(&array, type, val, len);
-       dbus_message_iter_close_container(&value, &array);
-
-       dbus_message_iter_close_container(&entry, &value);
+       connman_dbus_property_append_fixed_array(&entry, key, type, val, len);
 
        dbus_message_iter_close_container(dict, &entry);
 }
@@ -207,7 +215,7 @@ void connman_dbus_dict_append_variable_array(DBusMessageIter *dict,
 
        connman_dbus_property_append_variable_array(&entry, key,
                                                        type, function);
-
+       
        dbus_message_iter_close_container(dict, &entry);
 }