Remove unnecessary DB access 28/161328/2
authorWonnam Jang <wn.jang@samsung.com>
Thu, 23 Nov 2017 00:26:52 +0000 (09:26 +0900)
committerWonnam Jang <wn.jang@samsung.com>
Thu, 23 Nov 2017 00:30:07 +0000 (09:30 +0900)
Change-Id: Ie5080b25a9a7c5d2c9e950b958f95e322d3bdd16
Signed-off-by: Wonnam Jang <wn.jang@samsung.com>
client/vc_widget.c
client/vc_widget_dbus.c
server/vcd_dbus.c
server/vcd_dbus.h
server/vcd_server.c

index 178f360..257478f 100644 (file)
@@ -1128,18 +1128,9 @@ void __vc_widget_cb_result()
        return;
 }
 
-bool __vc_widget_cb_asr_result()
+bool __vc_widget_cb_asr_result(int event, const char* asr_result)
 {
-       char* temp_text;
-       int event;
-       vc_cmd_list_h vc_cmd_list = NULL;
-       if (0 != vc_cmd_list_create(&vc_cmd_list)) {
-               SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to create command list");
-               return false;
-       }
-
-       vc_info_parser_get_result(&temp_text, &event, NULL, -1, vc_cmd_list, false);
-       SLOG(LOG_DEBUG, TAG_VCW, "Result info : result text(%s) event(%d)", temp_text, event);
+       SLOG(LOG_DEBUG, TAG_VCW, "Result info : result text(%s) event(%d)", asr_result, event);
 
        vc_asr_result_cb callback = NULL;
        void* user_data = NULL;
@@ -1168,7 +1159,7 @@ bool __vc_widget_cb_asr_result()
                        }
 
                        vc_widget_client_use_callback(vc_w);
-                       consumed = callback(event, temp_text, user_data);
+                       consumed = callback(event, asr_result, user_data);
                        vc_widget_client_not_use_callback(vc_w);
                        if (true == consumed)
                                break;
@@ -1177,11 +1168,6 @@ bool __vc_widget_cb_asr_result()
                }
        }
 
-       /* Release result */
-       if (NULL != temp_text)  free(temp_text);
-
-       vc_cmd_list_destroy(vc_cmd_list, true);
-
        return consumed;
 }
 
index a40fd93..9d5dbc0 100644 (file)
@@ -33,7 +33,7 @@ extern void __vc_widget_cb_show_tooltip(int pid, bool show);
 
 extern void __vc_widget_cb_result();
 
-extern bool __vc_widget_cb_asr_result();
+extern bool __vc_widget_cb_asr_result(int event, const char* asr_result);
 
 extern int __vc_widget_cb_service_state(int state);
 
@@ -168,7 +168,15 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                else if (dbus_message_is_method_call(msg, if_name, VCD_WIDGET_METHOD_ASR_RESULT)) {
                        SLOG(LOG_DEBUG, TAG_VCW, "@@@ Get widget asr result");
                        int ret = 0;
-                       if (false == __vc_widget_cb_asr_result())
+                       int event = -1;
+                       char* asr_result = NULL;
+
+                       dbus_message_get_args(msg, &err,
+                               DBUS_TYPE_INT32, &event,
+                               DBUS_TYPE_STRING, &asr_result,
+                               DBUS_TYPE_INVALID);
+
+                       if (false == __vc_widget_cb_asr_result(event, asr_result))
                                ret = 0;
                        else
                                ret = 1;
@@ -179,7 +187,7 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                                if (!dbus_connection_send(g_w_conn_listener, reply, NULL))
                                        SLOG(LOG_ERROR, TAG_VCW, "@@ vc widget get asr result : fail to send reply");
                                else
-                                       SLOG(LOG_DEBUG, TAG_VCW, "@@ vc widget get asr result");
+                                       SLOG(LOG_DEBUG, TAG_VCW, "@@ vc widget get asr result, event(%d), asr_result(%s), consumed(%d)", event, asr_result, ret);
 
                                dbus_connection_flush(g_w_conn_listener);
                                dbus_message_unref(reply);
index f2486e4..72cad70 100755 (executable)
@@ -311,7 +311,7 @@ int vcdc_send_result(int pid, int manager_pid, int cmd_type)
        return 0;
 }
 
-int vcdc_send_asr_result(int pid, int cmd_type, bool* is_consumed)
+int vcdc_send_asr_result(int pid, int event, const char* asr_result, int cmd_type, bool* is_consumed)
 {
        if (0 != __dbus_check()) {
                return VCD_ERROR_OPERATION_FAILED;
@@ -335,6 +335,8 @@ int vcdc_send_asr_result(int pid, int cmd_type, bool* is_consumed)
                return VCD_ERROR_OUT_OF_MEMORY;
        }
 
+       dbus_message_append_args(msg, DBUS_TYPE_INT32, &event, DBUS_TYPE_STRING, &asr_result, DBUS_TYPE_INVALID);
+
        DBusError err;
        dbus_error_init(&err);
 
index ad6ebb8..d4674ec 100644 (file)
@@ -44,7 +44,7 @@ int vcdc_send_set_volume(int manger_pid, float volume);
 
 int vcdc_send_result(int pid, int manager_pid, int cmd_type);
 
-int vcdc_send_asr_result(int pid, int cmd_type, bool* is_consumed);
+int vcdc_send_asr_result(int pid, int event, const char* asr_result, int cmd_type, bool* is_consumed);
 
 int vcdc_send_pre_result_to_manager(int manager_pid, int event, const char* pre_result);
 
index 10cb388..58b2f37 100755 (executable)
@@ -506,13 +506,12 @@ int vcd_send_result(vce_result_event_e event, int* result_id, int count, const c
        int pid = vcd_client_widget_get_foreground_pid();
        if (-1 != pid) {
                if (NULL != all_result) {
-                       vc_info_parser_set_result(all_result, event, msg, NULL, false);
                        bool enable = false;
                        vcd_client_widget_get_asr_result_enabled(pid, &enable);
                        if (true == enable) {
                                SLOG(LOG_DEBUG, TAG_VCD, "[Server] Send ASR result to Widget client");
                                bool is_consumed = false;
-                               if (0 != vcdc_send_asr_result(pid, VC_COMMAND_TYPE_WIDGET, &is_consumed)) {
+                               if (0 != vcdc_send_asr_result(pid, event, all_result, VC_COMMAND_TYPE_WIDGET, &is_consumed)) {
                                        SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to send asr result");
                                } else {
                                        SLOG(LOG_DEBUG, TAG_VCD, "[Server] ASR result is consumed(%d)", is_consumed);