Modify trigger to accept GVariant as dbus call action's parameter 24/47724/1
authorSomin Kim <somin926.kim@samsung.com>
Tue, 8 Sep 2015 07:22:52 +0000 (16:22 +0900)
committerSomin Kim <somin926.kim@samsung.com>
Tue, 8 Sep 2015 07:22:52 +0000 (16:22 +0900)
Change-Id: Ibf6308ec0ba94ff2b71defe8691aa0bdec13879f
Signed-off-by: Mu-Woong <muwoong.lee@samsung.com>
Signed-off-by: Somin Kim <somin926.kim@samsung.com>
src/context_trigger/rule_manager.cpp
src/dbus_server_impl.cpp
src/dbus_server_impl.h

index 54b030759a8c7ac1782c5379dcb4e1c31eb1b98e..f1e490887021374e456ac68c30dc00fbf846f77a 100644 (file)
@@ -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, &param);
 
-       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)
index dec533531bc61f880e90d4e1f5fd7eebe47246e4..447ab2a483ce4792f5188f7fd3b03cc2d862f9bc 100644 (file)
@@ -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);
 }
index 8e85c8c529543d9b5cae5bbd4699a2757cab6113..b9f1f7a5a1a7d0573bdb6c04aba66b3baf2dcda3 100644 (file)
@@ -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 */