Comman: Set callback for async dbus method call 88/18388/1
authorWu Jiangbo <jiangbox.wu@intel.com>
Fri, 21 Mar 2014 09:48:14 +0000 (17:48 +0800)
committerWu Jiangbo <jiangbox.wu@intel.com>
Fri, 21 Mar 2014 09:48:14 +0000 (17:48 +0800)
Change-Id: I42f7f0978ff715ca4f3a6fb5a8144e74b7ba307f
Signed-off-by: Wu Jiangbo <jiangbox.wu@intel.com>
include/bluez.h
include/common.h
lib/bluetooth-service.c
lib/bluez.c
lib/common.c
lib/obex.c

index 9e840ac..cc8d95b 100644 (file)
@@ -281,10 +281,6 @@ void bluez_device_set_alias(
                                struct _bluez_device *device,
                                const gchar *alias);
 
-typedef void (*simple_reply_cb_t) (
-                               enum bluez_error_type type,
-                               void *user_data);
-
 typedef void (*bluez_avrcp_repeat_changed_cb_t)(
                                const gchar *repeat,
                                gpointer user_data);
index eed7ee5..874ed2c 100644 (file)
@@ -54,6 +54,16 @@ enum bluez_error_type {
        ERROR_AUTH_FAILED
 };
 
+typedef void (*simple_reply_cb_t) (
+                               enum bluez_error_type type,
+                               void *user_data);
+
+struct simple_reply_data {
+       GDBusProxy *proxy;
+       simple_reply_cb_t reply_cb;
+       void *user_data;
+};
+
 enum bluez_error_type get_error_type(GError *error);
 
 int property_get_boolean(GDBusProxy *proxy,
@@ -74,6 +84,10 @@ int property_get_uint64(GDBusProxy *proxy,
 char **property_get_string_list(GDBusProxy *proxy,
                                const char *property);
 
+void simple_reply_callback(GObject *source_object,
+                               GAsyncResult *res,
+                               gpointer user_data);
+
 int comms_service_plugin_init(void);
 void comms_service_plugin_cleanup(void);
 
index b07c447..9852f1e 100644 (file)
@@ -578,6 +578,37 @@ void comms_lib_deinit(void)
        destruct_comms_object_manager();
 }
 
+struct _bluetooth_simple_async_result {
+       bluetooth_simple_callback callback;
+       void *user_data;
+};
+
+static void bluetooth_simple_async_cb(GObject *object, GAsyncResult *res,
+                                               gpointer user_data)
+{
+       struct _bluetooth_simple_async_result *async_result_node = user_data;
+       enum bluez_error_type error_type = ERROR_NONE;
+       GDBusProxy *proxy = G_DBUS_PROXY(object);
+       GError *error = NULL;
+       GVariant *ret;
+
+       ret = g_dbus_proxy_call_finish(proxy, res, &error);
+       if (ret == NULL) {
+               DBG("%s", error->message);
+
+               error_type = get_error_type(error);
+
+               g_error_free(error);
+       } else
+               g_variant_unref(ret);
+
+       if (async_result_node && async_result_node->callback)
+               async_result_node->callback(error_type,
+                                       async_result_node->user_data);
+
+       g_free(async_result_node);
+}
+
 void comms_manager_enable_bluetooth(void)
 {
        if (this_manager == NULL) {
@@ -586,7 +617,8 @@ void comms_manager_enable_bluetooth(void)
        }
 
        g_dbus_proxy_call(this_manager->proxy, "EnableBluetoothService",
-                                       NULL, 0, -1, NULL, NULL, NULL);
+                                       NULL, 0, -1, NULL,
+                                       bluetooth_simple_async_cb, NULL);
 }
 
 void comms_manager_disable_bluetooth(void)
@@ -597,7 +629,8 @@ void comms_manager_disable_bluetooth(void)
        }
 
        g_dbus_proxy_call(this_manager->proxy, "DisableBluetoothService",
-                                       NULL, 0, -1, NULL, NULL, NULL);
+                                       NULL, 0, -1, NULL,
+                                       bluetooth_simple_async_cb, NULL);
 }
 
 int comms_manager_get_bt_adapter_visibale_time(void)
@@ -650,37 +683,6 @@ int comms_manager_get_property_bt_in_service(gboolean *in_service)
                                "BluetoothInService", in_service);
 }
 
-struct _bluetooth_simple_async_result {
-       bluetooth_simple_callback callback;
-       void *user_data;
-};
-
-static void bluetooth_simple_async_cb(GObject *object, GAsyncResult *res,
-                                               gpointer user_data)
-{
-       struct _bluetooth_simple_async_result *async_result_node = user_data;
-       enum bluez_error_type error_type = ERROR_NONE;
-       GDBusProxy *proxy = G_DBUS_PROXY(object);
-       GError *error = NULL;
-       GVariant *ret;
-
-       ret = g_dbus_proxy_call_finish(proxy, res, &error);
-       if (ret == NULL) {
-               DBG("%s", error->message);
-
-               error_type = get_error_type(error);
-
-               g_error_free(error);
-       } else
-               g_variant_unref(ret);
-
-       if (async_result_node->callback)
-               async_result_node->callback(error_type,
-                                       async_result_node->user_data);
-
-       g_free(async_result_node);
-}
-
 void comms_bluetooth_device_pair(const char *address,
                                bluetooth_simple_callback cb,
                                void *user_data)
index b7caecd..dd4292e 100644 (file)
@@ -1386,7 +1386,8 @@ void bluez_adapter_set_alias(struct _bluez_adapter *adapter,
 
        g_dbus_proxy_call(adapter->parent->properties_proxy,
                                        "Set", parameters, 0,
-                                       -1, NULL, NULL, NULL);
+                                       -1, NULL,
+                                       simple_reply_callback, NULL);
 }
 
 void bluez_adapter_set_powered(struct _bluez_adapter *adapter,
@@ -1401,7 +1402,7 @@ void bluez_adapter_set_powered(struct _bluez_adapter *adapter,
 
        g_dbus_proxy_call(adapter->parent->properties_proxy,
                                        "Set", parameters, 0,
-                                       -1, NULL, NULL, NULL);
+                                       -1, NULL, simple_reply_callback, NULL);
 }
 
 void bluez_adapter_set_discoverable(struct _bluez_adapter *adapter,
@@ -1416,7 +1417,8 @@ void bluez_adapter_set_discoverable(struct _bluez_adapter *adapter,
 
        g_dbus_proxy_call(adapter->parent->properties_proxy,
                                        "Set", parameters, 0,
-                                       -1, NULL, NULL, NULL);
+                                       -1, NULL,
+                                       simple_reply_callback, NULL);
 }
 
 void bluez_adapter_set_discoverable_timeout(struct _bluez_adapter *adapter,
@@ -1430,7 +1432,8 @@ void bluez_adapter_set_discoverable_timeout(struct _bluez_adapter *adapter,
 
        g_dbus_proxy_call(adapter->parent->properties_proxy,
                                        "Set", parameters, 0,
-                                       -1, NULL, NULL, NULL);
+                                       -1, NULL,
+                                       simple_reply_callback, NULL);
 }
 
 void bluez_adapter_start_discovery(struct _bluez_adapter *adapter)
@@ -1439,7 +1442,8 @@ void bluez_adapter_start_discovery(struct _bluez_adapter *adapter)
 
        g_dbus_proxy_call(adapter->proxy,
                        "StartDiscovery", NULL,
-                       0, -1, NULL, NULL, NULL);
+                       0, -1, NULL,
+                       simple_reply_callback, NULL);
 
 }
 
@@ -1447,7 +1451,8 @@ void bluez_adapter_stop_discovery(struct _bluez_adapter *adapter)
 {
        g_dbus_proxy_call(adapter->proxy,
                        "StopDiscovery", NULL,
-                       0, -1, NULL, NULL, NULL);
+                       0, -1, NULL,
+                       simple_reply_callback, NULL);
 }
 
 int bluez_adapter_get_property_powered(struct _bluez_adapter *adapter,
@@ -1673,7 +1678,8 @@ void bluez_adapter_remove_device(struct _bluez_adapter *adapter,
 {
        g_dbus_proxy_call(adapter->proxy, "RemoveDevice",
                        g_variant_new("(o)", device->object_path),
-                       0, -1, NULL, NULL, NULL);
+                       0, -1, NULL,
+                       simple_reply_callback, NULL);
 }
 
 const GList *bluez_adapter_get_devices_path(struct _bluez_adapter *adapter)
@@ -1745,7 +1751,8 @@ void bluez_device_set_trusted(struct _bluez_device *device,
 
        g_dbus_proxy_call(device->parent->properties_proxy,
                                        "Set", parameter, 0,
-                                       -1, NULL, NULL, NULL);
+                                       -1, NULL,
+                                       simple_reply_callback, NULL);
 }
 
 void bluez_device_set_alias(struct _bluez_device *device,
@@ -1757,7 +1764,8 @@ void bluez_device_set_alias(struct _bluez_device *device,
 
        g_dbus_proxy_call(device->parent->properties_proxy,
                                        "Set", parameter, 0,
-                                       -1, NULL, NULL, NULL);
+                                       -1, NULL,
+                                       simple_reply_callback, NULL);
 }
 
 char **bluez_device_get_property_uuids(struct _bluez_device *device)
@@ -1810,12 +1818,6 @@ char *bluez_device_get_property_icon(struct _bluez_device *device)
        return property_get_string(device->proxy, "Icon");
 }
 
-struct simple_reply_data {
-       GDBusProxy *proxy;
-       simple_reply_cb_t reply_cb;
-       void *user_data;
-};
-
 struct profile_connect_state_notify {
        struct _bluez_device *device;
        profile_connect_cb_t cb;
@@ -1849,36 +1851,6 @@ static inline enum device_pair_state get_pairing_error_state(GError *error)
        return UNKNOWN_PAIRING_ERROR;
 }
 
-static void simple_reply_callback(GObject *source_object, GAsyncResult *res,
-                                                       gpointer user_data)
-{
-       struct simple_reply_data *reply_data = user_data;
-       enum bluez_error_type error_type = ERROR_NONE;
-       GError *error = NULL;
-       GVariant *ret;
-
-       if (!reply_data->proxy)
-               goto done;
-
-       ret = g_dbus_proxy_call_finish(reply_data->proxy, res, &error);
-       if (ret == NULL) {
-               DBG("%s", error->message);
-               error_type = get_error_type(error);
-
-               g_error_free(error);
-       } else
-               g_variant_unref(ret);
-
-       if (!reply_data)
-               return;
-
-       if (reply_data->reply_cb)
-               reply_data->reply_cb(error_type, reply_data->user_data);
-
-done:
-       g_free(reply_data);
-}
-
 void bluez_device_pair(struct _bluez_device *device,
                                simple_reply_cb_t pair_cb,
                                void *user_data)
@@ -2121,7 +2093,8 @@ void bluez_agent_request_default_agent(const gchar *path)
        g_dbus_proxy_call(this_agent->proxy,
                                "RequestDefaultAgent",
                                g_variant_new("(o)", path),
-                               0, -1, NULL, NULL, NULL);
+                               0, -1, NULL,
+                               simple_reply_callback, NULL);
 }
 
 void bluez_profile_register_profile(const gchar *path, const gchar *uuid,
index e9cd8c0..f5029e6 100644 (file)
@@ -201,3 +201,33 @@ void convert_device_path_to_address(const gchar *device_path,
                g_strlcpy(device_address, address, BT_ADDRESS_STRING_SIZE);
        }
 }
+
+void simple_reply_callback(GObject *source_object, GAsyncResult *res,
+                                                       gpointer user_data)
+{
+       struct simple_reply_data *reply_data = user_data;
+       enum bluez_error_type error_type = ERROR_NONE;
+       GError *error = NULL;
+       GVariant *ret;
+
+       if (!reply_data || !reply_data->proxy)
+               goto done;
+
+       ret = g_dbus_proxy_call_finish(reply_data->proxy, res, &error);
+       if (ret == NULL) {
+               DBG("%s", error->message);
+               error_type = get_error_type(error);
+
+               g_error_free(error);
+       } else
+               g_variant_unref(ret);
+
+       if (!reply_data)
+               return;
+
+       if (reply_data->reply_cb)
+               reply_data->reply_cb(error_type, reply_data->user_data);
+
+done:
+       g_free(reply_data);
+}
index f668d39..594c4d9 100644 (file)
@@ -1717,7 +1717,7 @@ void obex_session_remove_session(struct _obex_session *session)
 
        g_dbus_proxy_call(this_client->proxy, "RemoveSession",
                                g_variant_new("(o)", session->object_path),
-                               0, -1, NULL, NULL, NULL);
+                               0, -1, NULL, simple_reply_callback, NULL);
 }
 
 struct _obex_session *obex_session_get_session(const char *id)
@@ -1846,7 +1846,8 @@ void obex_transfer_cancel(struct _obex_transfer *transfer)
 
        g_dbus_proxy_call(transfer->proxy.proxy,
                                "Cancel", NULL, 0,
-                               -1, NULL, NULL, NULL);
+                               -1, NULL,
+                               simple_reply_callback, NULL);
 }
 
 char *obex_transfer_get_property_source(struct _obex_transfer *transfer)