From: Suyeon Hwang Date: Tue, 9 Jan 2018 02:46:31 +0000 (+0900) Subject: Change set_private_data to be async X-Git-Tag: accepted/tizen/unified/20180228.071746~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cdd20db5453cc129bf3e8a84a05c405a7965de4c;p=platform%2Fcore%2Fuifw%2Fvoice-control.git Change set_private_data to be async Change-Id: Ic94ddae4949d77f91a5fe9c0de227129790b0019 Signed-off-by: Suyeon Hwang --- diff --git a/client/vc_mgr_dbus.c b/client/vc_mgr_dbus.c index d08e9e9..fd96dc3 100644 --- a/client/vc_mgr_dbus.c +++ b/client/vc_mgr_dbus.c @@ -288,7 +288,7 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd char* key = NULL; char* data = NULL; - dbus_message_get_args(msg, &err, + dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_STRING, &key, DBUS_TYPE_STRING, &data, @@ -1438,44 +1438,19 @@ int vc_mgr_dbus_request_set_private_data(int pid, const char* key, const char* d DBUS_TYPE_STRING, &data, DBUS_TYPE_INVALID); - DBusError err; - dbus_error_init(&err); - - DBusMessage* result_msg; - int result = VC_ERROR_OPERATION_FAILED; - - result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err); - dbus_message_unref(msg); - - if (dbus_error_is_set(&err)) { - SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message); - dbus_error_free(&err); - } - - if (NULL != result_msg) { - dbus_message_get_args(result_msg, &err, - DBUS_TYPE_INT32, &result, - DBUS_TYPE_INVALID); - - if (dbus_error_is_set(&err)) { - SLOG(LOG_ERROR, TAG_VCM, "@@ Get arguments error (%s)", err.message); - dbus_error_free(&err); - result = VC_ERROR_OPERATION_FAILED; - } - dbus_message_unref(result_msg); + dbus_message_set_no_reply(msg, TRUE); - if (0 == result) { - SLOG(LOG_DEBUG, TAG_VCM, "@@ vc set private data : result = %d", result); - } else { - SLOG(LOG_ERROR, TAG_VCM, "@@ vc set private data : result = %d", result); - } + /* send the message and flush the connection */ + if (1 != dbus_connection_send(g_m_conn_sender, msg, NULL)) { + SLOG(LOG_ERROR, TAG_VCM, "[Dbus ERROR] Fail to send private data"); } else { - SLOG(LOG_DEBUG, TAG_VCM, "@@ Result Message is NULL"); - vc_mgr_dbus_reconnect(); - result = VC_ERROR_TIMED_OUT; + SLOG(LOG_ERROR, TAG_VCM, "[Dbus] Success to send private data"); + dbus_connection_flush(g_m_conn_sender); } - return result; + dbus_message_unref(msg); + + return VC_ERROR_NONE; } int vc_mgr_dbus_request_get_private_data(int pid, const char* key, char** data) diff --git a/server/vcd_dbus.c b/server/vcd_dbus.c index 72cad70..21ed6d7 100755 --- a/server/vcd_dbus.c +++ b/server/vcd_dbus.c @@ -247,7 +247,7 @@ int vcdc_send_set_volume(int manger_pid, float volume) SLOG(LOG_DEBUG, TAG_VCD, "@@ Send set volume : pid(%d), volume(%f)", manger_pid, volume); g_volume_count = 0; } - + dbus_connection_flush(g_conn_sender); g_volume_count++; @@ -820,47 +820,24 @@ int vcdc_send_request_set_private_data(int pid, const char* key, const char* dat } dbus_message_append_args(msg, - DBUS_TYPE_INT32, &pid, + DBUS_TYPE_INT32, &pid, DBUS_TYPE_STRING, &key, DBUS_TYPE_STRING, &data, DBUS_TYPE_INVALID); - DBusError err; - dbus_error_init(&err); - - DBusMessage* result_msg; - int result = -1; - - result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err); - dbus_message_unref(msg); - - if (dbus_error_is_set(&err)) { - SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] %s", err.message); - if (NULL != err.name) { - if (!strcmp(err.name, DBUS_ERROR_SERVICE_UNKNOWN)) { - SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Unknown service. Client is not available"); - dbus_error_free(&err); - return 0; - } - } - dbus_error_free(&err); - } - - if (NULL != result_msg) { - dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID); - - if (dbus_error_is_set(&err)) { - SLOG(LOG_ERROR, TAG_VCD, "[Dbus] Get arguments error (%s)", err.message); - dbus_error_free(&err); - result = VCD_ERROR_OPERATION_FAILED; - } + dbus_message_set_no_reply(msg, TRUE); - dbus_message_unref(result_msg); + if (1 != dbus_connection_send(g_conn_sender, msg, NULL)) { + SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to Send request set private data"); + return VCD_ERROR_OPERATION_FAILED; } else { - SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result message is NULL. Client is not available"); + SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] SUCCESS Send request set private data"); + dbus_connection_flush(g_conn_sender); } - return result; + dbus_message_unref(msg); + + return VCD_ERROR_NONE; } int vcdc_send_request_get_private_data(int pid, const char* key, char** data) @@ -877,7 +854,7 @@ int vcdc_send_request_get_private_data(int pid, const char* key, char** data) } dbus_message_append_args(msg, - DBUS_TYPE_INT32, &pid, + DBUS_TYPE_INT32, &pid, DBUS_TYPE_STRING, &key, DBUS_TYPE_INVALID); diff --git a/server/vcd_engine_agent.c b/server/vcd_engine_agent.c index 49b9f7f..1f4c585 100644 --- a/server/vcd_engine_agent.c +++ b/server/vcd_engine_agent.c @@ -734,7 +734,7 @@ int vcd_engine_agent_get_audio_type(char** audio_type) int vcd_engine_agent_set_private_data(const char* key, const char* data) { - SLOG(LOG_DEBUG, TAG_VCD, "[Engine Agent] Request set private data"); + SLOG(LOG_DEBUG, TAG_VCD, "[Engine Agent] Request set private data, key(%s), data(%s)", key, data); vcdc_send_request_set_private_data(vcd_client_manager_get_pid(), key, data); return VCD_ERROR_NONE; @@ -742,7 +742,7 @@ int vcd_engine_agent_set_private_data(const char* key, const char* data) int vcd_engine_agent_get_private_data(const char* key, char** data) { - SLOG(LOG_DEBUG, TAG_VCD, "[Engine Agent] Request get private data"); + SLOG(LOG_DEBUG, TAG_VCD, "[Engine Agent] Request get private data, key(%s)", key); vcdc_send_request_get_private_data(vcd_client_manager_get_pid(), key, data); return VCD_ERROR_NONE;