From 88775e7cdf9bf30f6e0066bdccb8e0d8ec362eb2 Mon Sep 17 00:00:00 2001 From: Somin Kim Date: Tue, 8 Sep 2015 16:17:15 +0900 Subject: [PATCH] Enable dbus action in trigger Change-Id: Id99453d0e9ae4c0a09b6aee328d81426e65963ff Signed-off-by: Mu-Woong Signed-off-by: Somin Kim --- CMakeLists.txt | 1 - include/context_trigger_internal.h | 7 ++++--- include/context_trigger_types_internal.h | 2 +- src/context_trigger.cpp | 15 +++++++++------ 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ed69fdc..6207e59 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,6 @@ INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeL INSTALL( DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/context-service FILES_MATCHING - PATTERN "context_trigger_internal.h" EXCLUDE PATTERN "*.h" ) diff --git a/include/context_trigger_internal.h b/include/context_trigger_internal.h index 93f24f3..23b5146 100644 --- a/include/context_trigger_internal.h +++ b/include/context_trigger_internal.h @@ -17,6 +17,7 @@ #ifndef __TIZEN_CONTEXT_CONTEXT_TRIGGER_INTERNAL_H__ #define __TIZEN_CONTEXT_CONTEXT_TRIGGER_INTERNAL_H__ +#include #include /** @@ -28,8 +29,8 @@ * @param[in] object_path Path of the remote object * @param[in] interface_name D-Bus interface to invoke method on * @param[in] method_name The name of the method to invoke - * @param[in] user_data A user-defined string to be delivered as the first parameter of the method. - * @c NULL if not passing any values. + * @param[in] param Tuple with parameters for the method, + * or @c NULL if not passing parameters. * * @return 0 on success, otherwise a negative error value * @retval #CONTEXT_TRIGGER_ERROR_NONE Successful @@ -40,6 +41,6 @@ */ int context_trigger_rule_set_action_dbus_call(context_trigger_rule_h rule, const char *bus_name, const char *object_path, const char *interface_name, - const char *method_name, const char *user_data); + const char *method_name, GVariant *param); #endif diff --git a/include/context_trigger_types_internal.h b/include/context_trigger_types_internal.h index 5b584b2..6c0913e 100644 --- a/include/context_trigger_types_internal.h +++ b/include/context_trigger_types_internal.h @@ -59,7 +59,7 @@ #define CT_RULE_ACTION_DBUS_OBJECT "ACTION_DBUS_OBJ" #define CT_RULE_ACTION_DBUS_INTERFACE "ACTION_DBUS_IFACE" #define CT_RULE_ACTION_DBUS_METHOD "ACTION_DBUS_METHOD" -#define CT_RULE_ACTION_DBUS_USER_DATA "ACTION_DBUS_USERDATA" +#define CT_RULE_ACTION_DBUS_PARAMETER "ACTION_DBUS_PARAM" #define CT_RESPONSE "RES" diff --git a/src/context_trigger.cpp b/src/context_trigger.cpp index c74bfbd..bd04e14 100644 --- a/src/context_trigger.cpp +++ b/src/context_trigger.cpp @@ -467,28 +467,31 @@ EXTAPI int context_trigger_rule_set_action_notification(context_trigger_rule_h r return CONTEXT_TRIGGER_ERROR_NONE; } -#if 0 EXTAPI int context_trigger_rule_set_action_dbus_call(context_trigger_rule_h rule, - const char *bus_name, const char *object_path, const char *interface_name, const char *method_name, const char *user_data) + const char *bus_name, const char *object_path, const char *interface_name, const char *method_name, GVariant *param) { ASSERT_NOT_NULL(rule && bus_name && object_path && interface_name && method_name); - // if action arleady exists + /* if action arleady exists */ std::string type; if ((rule->jrule).get(CT_RULE_DETAILS "." CT_RULE_ACTION, CT_RULE_ACTION_TYPE, &type)) return CONTEXT_TRIGGER_ERROR_INVALID_RULE; - // Set D-Bus info + /* Set action type */ (rule->jrule).set(CT_RULE_DETAILS "." CT_RULE_ACTION, CT_RULE_ACTION_TYPE, CT_RULE_ACTION_TYPE_DBUS_CALL); + + /* Set basic dbus method call info */ (rule->jrule).set(CT_RULE_DETAILS "." CT_RULE_ACTION, CT_RULE_ACTION_DBUS_NAME, bus_name); (rule->jrule).set(CT_RULE_DETAILS "." CT_RULE_ACTION, CT_RULE_ACTION_DBUS_OBJECT, object_path); (rule->jrule).set(CT_RULE_DETAILS "." CT_RULE_ACTION, CT_RULE_ACTION_DBUS_INTERFACE, interface_name); (rule->jrule).set(CT_RULE_DETAILS "." CT_RULE_ACTION, CT_RULE_ACTION_DBUS_METHOD, method_name); - (rule->jrule).set(CT_RULE_DETAILS "." CT_RULE_ACTION, CT_RULE_ACTION_DBUS_USER_DATA, (user_data ? user_data : "")); + + /* Set the parameters */ + if (param) + (rule->jrule).set(CT_RULE_DETAILS "." CT_RULE_ACTION, CT_RULE_ACTION_DBUS_PARAMETER, param); return CONTEXT_TRIGGER_ERROR_NONE; } -#endif // Set description EXTAPI int context_trigger_rule_set_description(context_trigger_rule_h rule, const char* description) -- 2.7.4