#ifndef __TIZEN_CONTEXT_CONTEXT_TRIGGER_INTERNAL_H__
#define __TIZEN_CONTEXT_CONTEXT_TRIGGER_INTERNAL_H__
+#include <glib.h>
#include <context_trigger.h>
/**
* @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
*/
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
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)