From: Somin Kim Date: Tue, 8 Sep 2015 07:22:52 +0000 (+0900) Subject: Modify trigger to accept GVariant as dbus call action's parameter X-Git-Tag: submit/tizen_tv/20150909.084931~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=afa44e002494f3cccd9ec4edc3a2f70b74a78fd4;p=platform%2Fcore%2Fcontext%2Fcontext-service.git Modify trigger to accept GVariant as dbus call action's parameter Change-Id: Ibf6308ec0ba94ff2b71defe8691aa0bdec13879f Signed-off-by: Mu-Woong Signed-off-by: Somin Kim --- diff --git a/src/context_trigger/rule_manager.cpp b/src/context_trigger/rule_manager.cpp index 54b0307..f1e4908 100644 --- a/src/context_trigger/rule_manager.cpp +++ b/src/context_trigger/rule_manager.cpp @@ -1177,7 +1177,8 @@ static void trigger_action_notification(ctx::json& action, std::string app_id) static void trigger_action_dbus_call(ctx::json& action) { - std::string bus_name, object, iface, method, user_data; + std::string bus_name, object, iface, method; + GVariant *param = NULL; action.get(NULL, CT_RULE_ACTION_DBUS_NAME, &bus_name); IF_FAIL_VOID_TAG(!bus_name.empty(), _E, "No target bus name"); @@ -1191,12 +1192,9 @@ static void trigger_action_dbus_call(ctx::json& action) action.get(NULL, CT_RULE_ACTION_DBUS_METHOD, &method); IF_FAIL_VOID_TAG(!method.empty(), _E, "No method name"); - if (!action.get(NULL, CT_RULE_ACTION_DBUS_USER_DATA, &user_data)) { - _E("No user data"); - return; - } + action.get(NULL, CT_RULE_ACTION_DBUS_PARAMETER, ¶m); - ctx::dbus_server::call(bus_name.c_str(), object.c_str(), iface.c_str(), method.c_str(), user_data.c_str()); + ctx::dbus_server::call(bus_name.c_str(), object.c_str(), iface.c_str(), method.c_str(), param); } void ctx::rule_manager::on_rule_triggered(int rule_id) diff --git a/src/dbus_server_impl.cpp b/src/dbus_server_impl.cpp index dec5335..447ab2a 100644 --- a/src/dbus_server_impl.cpp +++ b/src/dbus_server_impl.cpp @@ -226,17 +226,14 @@ static void handle_call_result(GObject *source, GAsyncResult *res, gpointer user HANDLE_GERROR(error); } -void ctx::dbus_server_impl::call(const char *dest, const char *obj, const char *iface, const char *method, const char *data) +void ctx::dbus_server_impl::call(const char *dest, const char *obj, const char *iface, const char *method, GVariant *param) { - IF_FAIL_VOID_TAG(dest && obj && iface && method && data, _E, "Parameter null"); + IF_FAIL_VOID_TAG(dest && obj && iface && method, _E, "Parameter null"); static unsigned int call_count = 0; ++call_count; - _SI("Call %u: %s, %s, %s.%s, %s", call_count, dest, obj, iface, method, data); - - GVariant *param = g_variant_new("(s)", data); - IF_FAIL_VOID_TAG(param, _E, "Memory allocation failed"); + _SI("Call %u: %s, %s, %s.%s", call_count, dest, obj, iface, method); g_dbus_connection_call(dbus_connection, dest, obj, iface, method, param, NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_TIMEOUT, NULL, handle_call_result, &call_count); @@ -272,7 +269,7 @@ void ctx::dbus_server::publish(const char* dest, int req_id, const char* subject _instance->publish(dest, req_id, subject, error, data); } -void ctx::dbus_server::call(const char *dest, const char *obj, const char *iface, const char *method, const char *data) +void ctx::dbus_server::call(const char *dest, const char *obj, const char *iface, const char *method, GVariant *param) { - _instance->call(dest, obj, iface, method, data); + _instance->call(dest, obj, iface, method, param); } diff --git a/src/dbus_server_impl.h b/src/dbus_server_impl.h index 8e85c8c..b9f1f7a 100644 --- a/src/dbus_server_impl.h +++ b/src/dbus_server_impl.h @@ -31,7 +31,7 @@ namespace ctx { void release(); void publish(const char *dest, int req_id, const char *subject, int error, const char *data); - void call(const char *dest, const char *obj, const char *iface, const char *method, const char *data); + void call(const char *dest, const char *obj, const char *iface, const char *method, GVariant *param); int64_t signal_subscribe(const char *sender, const char *path, const char *iface, const char *name, dbus_listener_iface *listener); void signal_unsubscribe(int64_t subscription_id); @@ -39,7 +39,7 @@ namespace ctx { namespace dbus_server { void publish(const char *dest, int req_id, const char *subject, int error, const char *data); - void call(const char *dest, const char *obj, const char *iface, const char *method, const char *data); + void call(const char *dest, const char *obj, const char *iface, const char *method, GVariant *param); } } /* namespace ctx */