2 * Copyright (c) 2011-2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include "vc_widget_client.h"
20 #include "vc_widget_dbus.h"
23 static int g_w_waiting_time = 3000;
25 static Ecore_Fd_Handler* g_w_fd_handler = NULL;
27 static DBusConnection* g_w_conn = NULL;
30 extern int __vc_widget_cb_error(int pid, int reason);
32 extern void __vc_widget_cb_show_tooltip(int pid, bool show);
34 extern void __vc_widget_cb_result();
37 static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
39 DBusConnection* conn = (DBusConnection*)data;
40 DBusMessage* msg = NULL;
41 DBusMessage *reply = NULL;
44 return ECORE_CALLBACK_RENEW;
46 dbus_connection_read_write_dispatch(conn, 50);
48 msg = dbus_connection_pop_message(conn);
50 /* loop again if we haven't read a message */
52 return ECORE_CALLBACK_RENEW;
56 dbus_error_init(&err);
59 snprintf(if_name, 64, "%s%d", VC_WIDGET_SERVICE_INTERFACE, getpid());
61 if (dbus_message_is_method_call(msg, if_name, VCD_WIDGET_METHOD_HELLO)) {
62 SLOG(LOG_DEBUG, TAG_VCW, "===== Get widget hello");
66 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
68 if (dbus_error_is_set(&err)) {
69 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
70 dbus_error_free(&err);
74 SLOG(LOG_DEBUG, TAG_VCW, "<<<< vc widget get hello : pid(%d) ", pid);
77 SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget get hello : invalid pid ");
80 reply = dbus_message_new_method_return(msg);
83 dbus_message_append_args(reply, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
85 if (!dbus_connection_send(conn, reply, NULL))
86 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget get hello : fail to send reply");
88 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget get hello : result(%d)", response);
90 dbus_connection_flush(conn);
91 dbus_message_unref(reply);
93 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget get hello : fail to create reply message");
96 SLOG(LOG_DEBUG, TAG_VCW, "=====");
97 SLOG(LOG_DEBUG, TAG_VCW, " ");
98 } /* VCD_WIDGET_METHOD_HELLO */
100 else if (dbus_message_is_method_call(msg, if_name, VCD_WIDGET_METHOD_SHOW_TOOLTIP)) {
101 SLOG(LOG_DEBUG, TAG_VCW, "===== Show / Hide tooltip");
105 dbus_message_get_args(msg, &err,
106 DBUS_TYPE_INT32, &pid,
107 DBUS_TYPE_INT32, &show,
110 if (dbus_error_is_set(&err)) {
111 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
112 dbus_error_free(&err);
116 SLOG(LOG_DEBUG, TAG_VCW, "<<<< vc widget show tooltip : pid(%d), show(%d)", pid, show);
118 __vc_widget_cb_show_tooltip(pid, (bool)show);
120 SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget show tooltip : invalid pid");
124 reply = dbus_message_new_method_return(msg);
127 if (!dbus_connection_send(conn, reply, NULL))
128 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget show tooltip : fail to send reply");
130 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget show tooltip");
132 dbus_connection_flush(conn);
133 dbus_message_unref(reply);
135 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget show tooltip : fail to create reply message");
139 SLOG(LOG_DEBUG, TAG_VCW, "=====");
140 SLOG(LOG_DEBUG, TAG_VCW, " ");
141 } /* VCD_WIDGET_METHOD_SHOW_TOOLTIP */
143 else if (dbus_message_is_method_call(msg, if_name, VCD_WIDGET_METHOD_RESULT)) {
144 SLOG(LOG_DEBUG, TAG_VCW, "===== Get widget result");
146 __vc_widget_cb_result();
149 reply = dbus_message_new_method_return(msg);
152 if (!dbus_connection_send(conn, reply, NULL))
153 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget get result : fail to send reply");
155 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget get result");
157 dbus_connection_flush(conn);
158 dbus_message_unref(reply);
160 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget get result : fail to create reply message");
164 SLOG(LOG_DEBUG, TAG_VCW, "=====");
165 SLOG(LOG_DEBUG, TAG_VCW, " ");
167 } /* VCD_WIDGET_METHOD_RESULT */
169 else if (dbus_message_is_method_call(msg, if_name, VCD_WIDGET_METHOD_ERROR)) {
170 SLOG(LOG_DEBUG, TAG_VCW, "===== Get widget error");
175 dbus_message_get_args(msg, &err,
176 DBUS_TYPE_INT32, &pid,
177 DBUS_TYPE_INT32, &reason,
178 DBUS_TYPE_STRING, &err_msg,
181 if (dbus_error_is_set(&err)) {
182 SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget get error message : Get arguments error (%s)", err.message);
183 dbus_error_free(&err);
185 SLOG(LOG_DEBUG, TAG_VCW, "<<<< vc widget get error message : pid(%d), reason(%d), msg(%s)", pid, reason, err_msg);
186 __vc_widget_cb_error(pid, reason);
190 reply = dbus_message_new_method_return(msg);
193 if (!dbus_connection_send(conn, reply, NULL))
194 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget error message : fail to send reply");
196 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget error message");
198 dbus_connection_flush(conn);
199 dbus_message_unref(reply);
201 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget error message : fail to create reply message");
205 SLOG(LOG_DEBUG, TAG_VCW, "=====");
206 SLOG(LOG_DEBUG, TAG_VCW, " ");
207 } /* VCD_WIDGET_METHOD_ERROR */
209 /* free the message */
210 dbus_message_unref(msg);
212 return ECORE_CALLBACK_PASS_ON;
215 int vc_widget_dbus_open_connection()
217 if (NULL != g_w_conn) {
218 SLOG(LOG_WARN, TAG_VCW, "Already existed connection ");
225 /* initialise the error value */
226 dbus_error_init(&err);
228 /* connect to the DBUS system bus, and check for errors */
229 g_w_conn = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
231 if (dbus_error_is_set(&err)) {
232 SLOG(LOG_ERROR, TAG_VCW, "Dbus Connection Error (%s)", err.message);
233 dbus_error_free(&err);
236 if (NULL == g_w_conn) {
237 SLOG(LOG_ERROR, TAG_VCW, "Fail to get dbus connection ");
238 return VC_ERROR_OPERATION_FAILED;
243 char service_name[64];
244 memset(service_name, '\0', 64);
245 snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
247 SLOG(LOG_DEBUG, TAG_VCW, "service name is %s", service_name);
249 /* register our name on the bus, and check for errors */
250 ret = dbus_bus_request_name(g_w_conn, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
252 if (dbus_error_is_set(&err)) {
253 SLOG(LOG_ERROR, TAG_VCW, "Name Error (%s)", err.message);
254 dbus_error_free(&err);
257 if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) {
258 SLOG(LOG_ERROR, TAG_VCW, "fail dbus_bus_request_name()");
262 if( NULL != g_w_fd_handler ) {
263 SLOG(LOG_WARN, TAG_VCW, "The handler already exists.");
268 snprintf(rule, 128, "type='signal',interface='%s%d'", VC_WIDGET_SERVICE_INTERFACE, pid);
270 /* add a rule for which messages we want to see */
271 dbus_bus_add_match(g_w_conn, rule, &err);
272 dbus_connection_flush(g_w_conn);
274 if (dbus_error_is_set(&err))
276 SLOG(LOG_ERROR, TAG_VCW, "Match Error (%s)", err.message);
277 dbus_error_free(&err);
278 return VC_ERROR_OPERATION_FAILED;
282 if (1 != dbus_connection_get_unix_fd(g_w_conn, &fd)) {
283 SLOG(LOG_ERROR, TAG_VCW, "fail to get fd from dbus ");
284 return VC_ERROR_OPERATION_FAILED;
286 SLOG(LOG_DEBUG, TAG_VCW, "Get fd from dbus : %d", fd);
289 g_w_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)widget_listener_event_callback, g_w_conn, NULL, NULL);
291 if (NULL == g_w_fd_handler) {
292 SLOG(LOG_ERROR, TAG_VCW, "fail to get fd handler from ecore ");
293 return VC_ERROR_OPERATION_FAILED;
299 int vc_widget_dbus_close_connection()
302 dbus_error_init(&err);
306 char service_name[64];
307 memset(service_name, '\0', 64);
308 snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
310 dbus_bus_release_name (g_w_conn, service_name, &err);
312 if (dbus_error_is_set(&err)) {
313 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
314 dbus_error_free(&err);
317 dbus_connection_close(g_w_conn);
319 g_w_fd_handler = NULL;
325 int vc_widget_dbus_reconnect()
327 bool connected = dbus_connection_get_is_connected(g_w_conn);
328 SECURE_SLOG(LOG_DEBUG, TAG_VCW, "[DBUS] %s", connected ? "Connected" : "Not connected");
330 if (false == connected) {
331 vc_widget_dbus_close_connection();
333 if (0 != vc_widget_dbus_open_connection()) {
334 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to reconnect");
338 SLOG(LOG_DEBUG, TAG_VCW, "[DBUS] Reconnect");
343 int vc_widget_dbus_request_hello()
347 msg = dbus_message_new_method_call(
348 VC_SERVER_SERVICE_NAME,
349 VC_SERVER_SERVICE_OBJECT_PATH,
350 VC_SERVER_SERVICE_INTERFACE,
354 SLOG(LOG_ERROR, TAG_VCW, ">>>> Request vc hello : Fail to make message");
355 return VC_ERROR_OPERATION_FAILED;
359 dbus_error_init(&err);
361 DBusMessage* result_msg = NULL;
364 result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, 500, &err);
366 if (dbus_error_is_set(&err)) {
367 dbus_error_free(&err);
370 dbus_message_unref(msg);
372 if (NULL != result_msg) {
373 dbus_message_unref(result_msg);
376 result = VC_ERROR_TIMED_OUT;
383 int vc_widget_dbus_request_initialize(int pid)
387 msg = dbus_message_new_method_call(
388 VC_SERVER_SERVICE_NAME,
389 VC_SERVER_SERVICE_OBJECT_PATH,
390 VC_SERVER_SERVICE_INTERFACE,
391 VC_WIDGET_METHOD_INITIALIZE);
394 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget initialize : Fail to make message ");
395 return VC_ERROR_OPERATION_FAILED;
397 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget initialize : pid(%d)", pid);
400 dbus_message_append_args( msg,
401 DBUS_TYPE_INT32, &pid,
405 dbus_error_init(&err);
407 DBusMessage* result_msg;
408 int result = VC_ERROR_OPERATION_FAILED;
410 result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
411 dbus_message_unref(msg);
413 if (dbus_error_is_set(&err)) {
414 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
415 dbus_error_free(&err);
418 if (NULL != result_msg) {
419 dbus_message_get_args(result_msg, &err,
420 DBUS_TYPE_INT32, &result,
423 if (dbus_error_is_set(&err)) {
424 SLOG(LOG_ERROR, TAG_VCW, "<<<< Get arguments error (%s)", err.message);
425 dbus_error_free(&err);
426 result = VC_ERROR_OPERATION_FAILED;
429 dbus_message_unref(result_msg);
432 SLOG(LOG_DEBUG, TAG_VCW, "<<<< vc widget initialize : result = %d", result);
434 SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget initialize : result = %d", result);
437 SLOG(LOG_ERROR, TAG_VCW, "<<<< Result message is NULL ");
438 vc_widget_dbus_reconnect();
439 result = VC_ERROR_TIMED_OUT;
445 int vc_widget_dbus_request_finalize(int pid)
449 msg = dbus_message_new_method_call(
450 VC_SERVER_SERVICE_NAME,
451 VC_SERVER_SERVICE_OBJECT_PATH,
452 VC_SERVER_SERVICE_INTERFACE,
453 VC_WIDGET_METHOD_FINALIZE);
456 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget finalize : Fail to make message ");
457 return VC_ERROR_OPERATION_FAILED;
459 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget finalize : pid(%d)", pid);
462 dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
465 dbus_error_init(&err);
467 DBusMessage* result_msg;
468 int result = VC_ERROR_OPERATION_FAILED;
470 result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
471 dbus_message_unref(msg);
473 if (dbus_error_is_set(&err)) {
474 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
475 dbus_error_free(&err);
478 if (NULL != result_msg) {
479 dbus_message_get_args(result_msg, &err,
480 DBUS_TYPE_INT32, &result,
483 if (dbus_error_is_set(&err)) {
484 SLOG(LOG_ERROR, TAG_VCW, "<<<< Get arguments error (%s)", err.message);
485 dbus_error_free(&err);
486 result = VC_ERROR_OPERATION_FAILED;
489 dbus_message_unref(result_msg);
492 SLOG(LOG_DEBUG, TAG_VCW, "<<<< vc widget finalize : result = %d", result);
494 SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget finalize : result = %d", result);
497 SLOG(LOG_ERROR, TAG_VCW, "<<<< Result message is NULL ");
498 vc_widget_dbus_reconnect();
499 result = VC_ERROR_TIMED_OUT;
505 int vc_widget_dbus_request_start_recording(int pid, bool command)
509 msg = dbus_message_new_method_call(
510 VC_SERVER_SERVICE_NAME,
511 VC_SERVER_SERVICE_OBJECT_PATH,
512 VC_SERVER_SERVICE_INTERFACE,
513 VC_WIDGET_METHOD_START_RECORDING);
516 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget start recording : Fail to make message");
517 return VC_ERROR_OPERATION_FAILED;
519 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget start recording : pid(%d)", pid);
522 int temp = (int)command;
524 dbus_message_append_args(msg,
525 DBUS_TYPE_INT32, &pid,
526 DBUS_TYPE_INT32, &temp,
530 dbus_error_init(&err);
532 DBusMessage* result_msg;
533 int result = VC_ERROR_OPERATION_FAILED;
535 result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
536 dbus_message_unref(msg);
538 if (dbus_error_is_set(&err)) {
539 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
540 dbus_error_free(&err);
543 if (NULL != result_msg) {
544 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
546 if (dbus_error_is_set(&err)) {
547 SLOG(LOG_ERROR, TAG_VCW, "<<<< Get arguments error (%s)", err.message);
548 dbus_error_free(&err);
549 result = VC_ERROR_OPERATION_FAILED;
551 dbus_message_unref(result_msg);
554 SLOG(LOG_DEBUG, TAG_VCW, "<<<< vc widget start recording : result = %d", result);
556 SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget start recording : result = %d", result);
559 SLOG(LOG_ERROR, TAG_VCW, "<<<< Result message is NULL");
560 vc_widget_dbus_reconnect();
561 result = VC_ERROR_TIMED_OUT;
567 int vc_widget_dbus_request_start(int pid, int silence)
571 /* create a signal & check for errors */
572 msg = dbus_message_new_method_call(
573 VC_SERVER_SERVICE_NAME,
574 VC_SERVER_SERVICE_OBJECT_PATH,
575 VC_SERVER_SERVICE_INTERFACE,
576 VC_WIDGET_METHOD_START);
579 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget start : Fail to make message ");
580 return VC_ERROR_OPERATION_FAILED;
582 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget start : pid(%d), silence(%d)", pid, silence);
585 DBusMessageIter args;
586 dbus_message_iter_init_append(msg, &args);
589 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(pid));
590 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(silence));
593 dbus_error_init(&err);
595 DBusMessage* result_msg;
596 int result = VC_ERROR_OPERATION_FAILED;
598 result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
599 dbus_message_unref(msg);
601 if (dbus_error_is_set(&err)) {
602 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
603 dbus_error_free(&err);
606 if (NULL != result_msg) {
607 dbus_message_get_args(result_msg, &err,
608 DBUS_TYPE_INT32, &result,
611 if (dbus_error_is_set(&err)) {
612 SLOG(LOG_ERROR, TAG_VCW, "<<<< Get arguments error (%s)", err.message);
613 dbus_error_free(&err);
614 result = VC_ERROR_OPERATION_FAILED;
616 dbus_message_unref(result_msg);
619 SLOG(LOG_DEBUG, TAG_VCW, "<<<< vc widget start : result = %d", result);
621 SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget start : result = %d", result);
624 SLOG(LOG_DEBUG, TAG_VCW, "<<<< Result Message is NULL");
625 vc_widget_dbus_reconnect();
626 result = VC_ERROR_TIMED_OUT;
632 int vc_widget_dbus_request_stop(int pid)
636 /* create a signal & check for errors */
637 msg = dbus_message_new_method_call(
638 VC_SERVER_SERVICE_NAME,
639 VC_SERVER_SERVICE_OBJECT_PATH,
640 VC_SERVER_SERVICE_INTERFACE,
641 VC_WIDGET_METHOD_STOP);
644 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget stop : Fail to make message ");
645 return VC_ERROR_OPERATION_FAILED;
647 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget stop : pid(%d)", pid);
650 dbus_message_append_args(msg,
651 DBUS_TYPE_INT32, &pid,
655 dbus_error_init(&err);
657 DBusMessage* result_msg;
658 int result = VC_ERROR_OPERATION_FAILED;
660 result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
661 dbus_message_unref(msg);
663 if (dbus_error_is_set(&err)) {
664 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
665 dbus_error_free(&err);
668 if (NULL != result_msg) {
669 dbus_message_get_args(result_msg, &err,
670 DBUS_TYPE_INT32, &result,
673 if (dbus_error_is_set(&err)) {
674 SLOG(LOG_ERROR, TAG_VCW, "<<<< Get arguments error (%s)", err.message);
675 dbus_error_free(&err);
676 result = VC_ERROR_OPERATION_FAILED;
678 dbus_message_unref(result_msg);
681 SLOG(LOG_DEBUG, TAG_VCW, "<<<< vc widget stop : result = %d", result);
683 SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget stop : result = %d", result);
686 SLOG(LOG_DEBUG, TAG_VCW, "<<<< Result Message is NULL");
687 vc_widget_dbus_reconnect();
688 result = VC_ERROR_TIMED_OUT;
694 int vc_widget_dbus_request_cancel(int pid)
698 /* create a signal & check for errors */
699 msg = dbus_message_new_method_call(
700 VC_SERVER_SERVICE_NAME,
701 VC_SERVER_SERVICE_OBJECT_PATH, /* object name of the signal */
702 VC_SERVER_SERVICE_INTERFACE, /* interface name of the signal */
703 VC_WIDGET_METHOD_CANCEL); /* name of the signal */
706 SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget cancel : Fail to make message ");
707 return VC_ERROR_OPERATION_FAILED;
709 SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget cancel : pid(%d)", pid);
712 dbus_message_append_args(msg,
713 DBUS_TYPE_INT32, &pid,
717 dbus_error_init(&err);
719 DBusMessage* result_msg;
720 int result = VC_ERROR_OPERATION_FAILED;
722 result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
723 dbus_message_unref(msg);
725 if (dbus_error_is_set(&err)) {
726 SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
727 dbus_error_free(&err);
730 if (NULL != result_msg) {
731 dbus_message_get_args(result_msg, &err,
732 DBUS_TYPE_INT32, &result,
735 if (dbus_error_is_set(&err)) {
736 SLOG(LOG_ERROR, TAG_VCW, "<<<< Get arguments error (%s)", err.message);
737 dbus_error_free(&err);
738 result = VC_ERROR_OPERATION_FAILED;
740 dbus_message_unref(result_msg);
743 SLOG(LOG_DEBUG, TAG_VCW, "<<<< vc widget cancel : result = %d", result);
745 SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget cancel : result = %d", result);
748 SLOG(LOG_DEBUG, TAG_VCW, "<<<< Result Message is NULL");
749 vc_widget_dbus_reconnect();
750 result = VC_ERROR_TIMED_OUT;