summaryrefslogtreecommitdiffstats
path: root/hcid
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2007-03-21 20:19:53 +0000
committerMarcel Holtmann <marcel@holtmann.org>2007-03-21 20:19:53 +0000
commitbdbad0d759c9f5c8092afd2cac4e1a76722b4517 (patch)
tree036ac711301237b2c6b20322ec8381c8261e7631 /hcid
parentb1d144b35ecdd617b00e6e07a43f7a7e07bafb7a (diff)
Move dictionary helper to common code
Diffstat (limited to 'hcid')
-rw-r--r--hcid/dbus-common.c32
-rw-r--r--hcid/dbus-common.h3
-rw-r--r--hcid/dbus-service.c29
3 files changed, 35 insertions, 29 deletions
diff --git a/hcid/dbus-common.c b/hcid/dbus-common.c
index 2c84a5b2..3e059158 100644
--- a/hcid/dbus-common.c
+++ b/hcid/dbus-common.c
@@ -70,6 +70,38 @@ static sdp_session_t *sess = NULL;
static int experimental = 0;
+void 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;
+ 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);
+}
+
service_handler_func_t find_service_handler(struct service_data *handlers, DBusMessage *msg)
{
struct service_data *current;
diff --git a/hcid/dbus-common.h b/hcid/dbus-common.h
index 4039a9cc..498f7eb4 100644
--- a/hcid/dbus-common.h
+++ b/hcid/dbus-common.h
@@ -36,6 +36,9 @@ typedef DBusHandlerResult (*service_handler_func_t) (DBusConnection *conn,
DBusMessage *msg,
void *user_data);
+void append_dict_entry(DBusMessageIter *dict, const char *key,
+ int type, void *val);
+
struct service_data {
const char *name;
service_handler_func_t handler_func;
diff --git a/hcid/dbus-service.c b/hcid/dbus-service.c
index f32dfcec..fc1592c1 100644
--- a/hcid/dbus-service.c
+++ b/hcid/dbus-service.c
@@ -101,35 +101,6 @@ static void service_exit(const char *name, struct service *service)
service->bus_name = NULL;
}
-static void 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;
- 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);
-}
-
static DBusHandlerResult get_info(DBusConnection *conn,
DBusMessage *msg, void *data)
{