X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=bt-service%2Fbt-service-map-client.c;h=3ea576dcc15a1993974c52e0ef6b4bfa87339d23;hb=d096b97ff521e5cd1379fd5b7cec95f260bce4d0;hp=614178e78fc1e966fab3a3d009e5aa993eb775fd;hpb=5705041c57a945cc57db14912bba55c0c26becc4;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-service/bt-service-map-client.c b/bt-service/bt-service-map-client.c index 614178e..3ea576d 100644 --- a/bt-service/bt-service-map-client.c +++ b/bt-service/bt-service-map-client.c @@ -53,102 +53,10 @@ bt_session_info_t *session_info; static void __bt_free_session_info(bt_session_info_t *info) { ret_if(info == NULL); - - /* TODO: MAP bt_session_info_t, see bt-service-opp-client.c */ - - g_free(info->address); - g_free(info); -} - -static void __bt_free_session_data(gpointer data) -{ - bt_session_data_t *info = data; - - ret_if(info == NULL); - - _bt_delete_request_id(info->request_id); - - /* TODO: MAP bt_session_data_t, see bt-service-opp-client.c */ - g_free(info->address); g_free(info); } -static void __bt_session_release_cb(GDBusProxy *proxy, - GAsyncResult *res, gpointer user_data) -{ - BT_DBG("+"); - ret_if(session_info == NULL); - - GError *error = NULL; - int result = BLUETOOTH_ERROR_NONE; - GVariant *param = NULL; - g_dbus_proxy_call_finish(proxy, res, &error); - if (proxy) - g_object_unref(proxy); - - if (error) { - BT_ERR("%s", error->message); - g_error_free(error); - - result = BLUETOOTH_ERROR_INTERNAL; - } else { - BT_DBG("Session Removed"); - } - - session_info->result = result; - param = g_variant_new("(isi)", session_info->result, - session_info->address, - session_info->request_id); - /* Send the event in only error none case */ - _bt_send_event(BT_OPP_CLIENT_EVENT, - BLUETOOTH_EVENT_OPC_DISCONNECTED, - param); - - __bt_free_session_info(session_info); - session_info = NULL; - - _bt_map_client_event_deinit(); - - /* Operate remain works */ - /* TODO: MAP */ - - return; -fail: - - BT_DBG("-"); - - return; -} - -static int _bt_remove_session() -{ - GDBusConnection *g_conn; - GDBusProxy *session_proxy; - GError *err = NULL; - - g_conn = _bt_gdbus_get_session_gconn(); - retv_if(g_conn == NULL, BLUETOOTH_ERROR_INTERNAL); - retv_if(session_info->session_path == NULL, BLUETOOTH_ERROR_INVALID_PARAM); - - session_proxy = g_dbus_proxy_new_sync(g_conn, G_DBUS_PROXY_FLAGS_NONE, - NULL, BT_OBEXD_DBUS_NAME, - BT_OBEX_CLIENT_PATH, - BT_OBEX_CLIENT_INTERFACE, - NULL, &err); - - retv_if(session_proxy == NULL, BLUETOOTH_ERROR_INTERNAL); - - g_dbus_proxy_call(session_proxy, "RemoveSession", - g_variant_new("(o)", session_info->session_path), - G_DBUS_CALL_FLAGS_NONE, - DBUS_TIMEOUT, NULL, - (GAsyncReadyCallback)__bt_session_release_cb, - NULL); - - return BLUETOOTH_ERROR_NONE; -} - void _bt_map_disconnected(const char *session_path) { BT_DBG("+"); @@ -174,82 +82,12 @@ void _bt_map_disconnected(const char *session_path) BT_DBG("-"); } -static void __bt_create_session_cb(GDBusProxy *proxy, - GAsyncResult *res, gpointer user_data) -{ - BT_DBG("+"); - - GError *error = NULL; - GVariant *value; - int result = BLUETOOTH_ERROR_NONE; - char *session_path = NULL; - GVariant *param = NULL; - - value = g_dbus_proxy_call_finish(proxy, res, &error); - if (value) { - g_variant_get(value, "(o)", &session_path); - g_variant_unref(value); - } - if (error) { - - BT_ERR("%s", error->message); - g_clear_error(&error); - - result = BLUETOOTH_ERROR_INTERNAL; - } else { - BT_DBG("Session created"); - if (session_info != NULL) - session_info->session_path = g_strdup(session_path); - } - g_free(session_path); - g_object_unref(proxy); - ret_if(session_info == NULL); - - session_info->result = result; - param = g_variant_new("(isi)", result, - session_info->address, - session_info->request_id); - /* Send the event in only error none case */ - _bt_send_event(BT_MAP_CLIENT_EVENT, - BLUETOOTH_EVENT_MAP_CONNECTED, - param); - - if (result != BLUETOOTH_ERROR_NONE) { - BT_ERR("Calling __bt_session_release"); - gboolean ret = __bt_session_release(); - - __bt_free_session_info(session_info); - session_info = NULL; - - if (ret == FALSE) { - BT_DBG("ReleaseSession Not called"); - /* Operate remain works */ - - /* TODO: MAP */ - - } - } else { - - /* TODO: MAP */ - - } - BT_DBG("-"); - -} - -static int __bt_opp_client_start_XXXXXXXXXX(int request_id, char *address - /* parameters................... */) -{ - /* TODO: MAP */ -} - int _bt_create_session_sync(const char* address, char** session_id) { BT_DBG("Entered SERVICE create session"); GDBusConnection *g_conn; GDBusProxy *session_proxy; GError *err = NULL; - const char *session_path; retv_if(address == NULL, BLUETOOTH_ERROR_INVALID_PARAM); @@ -268,17 +106,18 @@ int _bt_create_session_sync(const char* address, char** session_id) } retv_if(session_proxy == NULL, BLUETOOTH_ERROR_INTERNAL); - GVariantBuilder* builder = g_variant_builder_new (G_VARIANT_TYPE_ARRAY); + GVariantBuilder* builder = g_variant_builder_new(G_VARIANT_TYPE_ARRAY); g_variant_builder_add(builder, "{sv}", "Target", g_variant_new("s", "map")); GVariant *args = g_variant_builder_end(builder); - g_variant_builder_unref (builder); + g_variant_builder_unref(builder); GVariant *param = g_variant_new("(s@a{sv})", address, args); - char* string = g_variant_print (param, true); - GVariant *value = g_dbus_proxy_call_sync(session_proxy, "CreateSession", param, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err); + + g_object_unref(session_proxy); + if (err != NULL) { BT_ERR("Could not create session: %s\n", err->message); g_error_free(err); @@ -324,8 +163,11 @@ int _bt_destroy_session_sync(const char* session_id) GVariant *param = g_variant_new("(o)", session_id); - GVariant *value = g_dbus_proxy_call_sync(session_proxy, "RemoveSession", param, + g_dbus_proxy_call_sync(session_proxy, "RemoveSession", param, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err); + + g_object_unref(session_proxy); + if (err != NULL) { BT_ERR("Could not remove session: %s\n", err->message); g_error_free(err); @@ -347,9 +189,7 @@ int _bt_map_client_set_folder(const char* session_id, const char* name) GVariant *ret = NULL; g_conn = _bt_gdbus_get_session_gconn(); - ret_if(g_conn == NULL); - - GVariant *param = g_variant_new("(o)", session_id); + retv_if(g_conn == NULL, BLUETOOTH_ERROR_INTERNAL); message_proxy = g_dbus_proxy_new_sync(g_conn, G_DBUS_PROXY_FLAGS_NONE, NULL, @@ -389,7 +229,6 @@ static void __bt_list_folders_cb(GDBusProxy *proxy, int result = BLUETOOTH_ERROR_NONE; int request_id; - int size = 0; in_param = (GVariant*) user_data; g_variant_get(in_param, "(i)", &request_id); @@ -481,8 +320,6 @@ static void __bt_list_filter_fields_cb(GDBusProxy *proxy, int result = BLUETOOTH_ERROR_NONE; int request_id; - char** fields = NULL; - int size = 0; in_param = (GVariant*) user_data; g_variant_get(in_param, "(i)", &request_id); @@ -513,7 +350,6 @@ int _bt_map_client_list_filter_fields(int request_id, GDBusMethodInvocation *con GError *err = NULL; GDBusConnection *g_conn; GDBusProxy *message_proxy; - GVariant *ret = NULL; int result = BLUETOOTH_ERROR_NONE; retv_if(session_id == NULL, BLUETOOTH_ERROR_INVALID_PARAM); @@ -562,7 +398,6 @@ static void __bt_list_messages_cb( int result = BLUETOOTH_ERROR_NONE; int request_id; - int size = 0; in_param = (GVariant*) user_data; g_variant_get(in_param, "(i)", &request_id); @@ -656,9 +491,7 @@ int _bt_map_client_update_inbox(const char* session_id) GVariant *ret = NULL; g_conn = _bt_gdbus_get_session_gconn(); - ret_if(g_conn == NULL); - - GVariant *param = g_variant_new("(o)", session_id); + retv_if(g_conn == NULL, BLUETOOTH_ERROR_INTERNAL); message_proxy = g_dbus_proxy_new_sync(g_conn, G_DBUS_PROXY_FLAGS_NONE, NULL, @@ -688,7 +521,8 @@ int _bt_map_client_update_inbox(const char* session_id) return BLUETOOTH_ERROR_NONE; } -void _bt_map_on_transfer_finished(const char* transfer_object_path, const int error) { +void _bt_map_on_transfer_finished(const char *transfer_object_path, const int error) +{ BT_DBG("Entered _bt_map_on_transfer_finished"); BT_DBG("Looking for transfer %s id", transfer_object_path); @@ -696,9 +530,8 @@ void _bt_map_on_transfer_finished(const char* transfer_object_path, const int er GSList* transfer = NULL; for (transfer = transfer_list; transfer != NULL; transfer = g_slist_next(transfer)) { callback_data = transfer->data; - if (NULL == callback_data) { + if (NULL == callback_data) continue; - } if (0 == strcmp(transfer_object_path, callback_data->transfer_path)) { BT_DBG("request id FOUND - triggering event"); @@ -707,18 +540,18 @@ void _bt_map_on_transfer_finished(const char* transfer_object_path, const int er int event = -1; switch (callback_data->transfer_type) { - case BT_MAP_TRANSFER_GET_MESSAGE: - event = BLUETOOTH_EVENT_MAP_GET_MESSAGE_COMPLETE; - break; - case BT_MAP_TRANSFER_PUSH_MESSAGE: - event = BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_COMPLETE; - break; + case BT_MAP_TRANSFER_GET_MESSAGE: + event = BLUETOOTH_EVENT_MAP_GET_MESSAGE_COMPLETE; + break; + case BT_MAP_TRANSFER_PUSH_MESSAGE: + event = BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_COMPLETE; + break; } _bt_send_event(BT_MAP_CLIENT_EVENT, event, param); // remove callback data from list - g_slist_remove(transfer_list, transfer); + transfer_list = g_slist_remove(transfer_list, transfer); //free memory and break loop free(callback_data->transfer_path); @@ -736,14 +569,12 @@ static void __bt_push_message_cb(GDBusProxy *proxy, BT_DBG("+"); GError *error = NULL; - GVariant *value, *in_param, *param; + GVariant *value, *in_param; char *transfer_object_path = NULL; GVariantIter *iter = NULL; - int result = BLUETOOTH_ERROR_NONE; int request_id; - int size = 0; in_param = (GVariant*) user_data; g_variant_get(in_param, "(i)", &request_id); @@ -752,13 +583,10 @@ static void __bt_push_message_cb(GDBusProxy *proxy, if (error) { BT_ERR("%s", error->message); g_clear_error(&error); - result = BLUETOOTH_ERROR_INTERNAL; } - if (value) { + if (value) g_variant_get(value, "(oa{sv})", &transfer_object_path, &iter); - g_variant_unref(value); - } BT_DBG("transfer object path: [%s]", transfer_object_path); @@ -846,14 +674,12 @@ static void __bt_get_message_cb(GDBusProxy *proxy, BT_DBG("+"); GError *error = NULL; - GVariant *value, *in_param, *param; + GVariant *value, *in_param; char *transfer_object_path = NULL; GVariantIter *iter = NULL; - int result = BLUETOOTH_ERROR_NONE; int request_id; - int size = 0; in_param = (GVariant*) user_data; g_variant_get(in_param, "(i)", &request_id); @@ -862,13 +688,10 @@ static void __bt_get_message_cb(GDBusProxy *proxy, if (error) { BT_ERR("%s", error->message); g_clear_error(&error); - result = BLUETOOTH_ERROR_INTERNAL; } - if (value) { + if (value) g_variant_get(value, "(oa{sv})", &transfer_object_path, &iter); - g_variant_unref(value); - } BT_DBG("transfer object path: [%s]", transfer_object_path);