gboolean group_get_remote_device(Group *group, GDBusMethodInvocation *invocation,
gpointer user_data);
+gboolean group_pair_resource(Group *group, GDBusMethodInvocation *invocation,
+ gchar *target_1, gchar *subject_1, gchar *uri_1, gchar *rt_1,
+ gchar *interface_1, int permission_1, gchar *target_2, gchar *subject_2,
+ gchar *uri_2, gchar *rt_2, gchar *interface_2, int permission_2,
+ gpointer user_data);
+
+gboolean group_unpair_resource(Group *group, GDBusMethodInvocation *invocation,
+ gchar *uuid_dev1, gchar *uuid_dev2, gpointer user_data);
+
void notify_group_found(GVariant *group_data);
void notify_group_find_finish(int ret);
void notify_device_found(int device_count, GVariant *device_data);
int comp_group_dismiss(gchar *uuid);
void comp_group_notify_group_dismiss(int result);
+int comp_group_pair_resource(char* target1, char *subject1, char *uri1,
+ char *rt1, char *interface1, int permission1, char* target2, char *subject2,
+ char *uri2, char *rt2, char *interface2, int permission2);
+
+int comp_group_unpair_resource(gchar *uuid_dev1, gchar *uuid_dev2);
+
GVariant *comp_group_get_remote_mot_enabled_devices();
int comp_group_get_mot_device_count();
G_CALLBACK(group_get_remote_device),
NULL);
+ g_signal_connect(group_skeleton,
+ "handle-pair-resource",
+ G_CALLBACK(group_pair_resource),
+ NULL);
+
+ g_signal_connect(group_skeleton,
+ "handle-unpair-resource",
+ G_CALLBACK(group_unpair_resource),
+ NULL);
+
group = g_dbus_object_manager_server_new(COMP_DBUS_GROUP_PATH);
// Set connection to 'manager'
return TRUE;
}
+gboolean group_pair_resource(Group *group, GDBusMethodInvocation *invocation,
+ gchar *target_1, gchar *subject_1, gchar *uri_1, gchar *rt_1,
+ gchar *interface_1, int permission_1, gchar *target_2, gchar *subject_2,
+ gchar *uri_2, gchar *rt_2, gchar *interface_2, int permission_2,
+ gpointer user_data)
+{
+ int ret = 0;
+
+ LOG_DEBUG("pair resource called using dbus successful");
+
+ ret = comp_group_pair_resource(target_1, subject_1, uri_1, rt_1,
+ interface_1, permission_1, target_2, subject_2, uri_2,
+ rt_2, interface_2, permission_2);
+
+ group_complete_pair_resource(group, invocation, ret);
+
+ return TRUE;
+}
+
+gboolean group_unpair_resource(Group *group, GDBusMethodInvocation *invocation,
+ gchar *uuid_dev1, gchar *uuid_dev2, gpointer user_data)
+{
+ int ret = 0;
+
+ LOG_DEBUG("unpair resource called using dbus successful");
+
+ ret = comp_group_unpair_resource(uuid_dev1, uuid_dev2);
+
+ group_complete_unpair_resource(group, invocation, ret);
+
+ return TRUE;
+}
+
void notify_group_found(GVariant *group_data)
{
group_emit_group_found(group_dbus_get_object(), group_data);
return ret;
}
+int comp_group_pair_resource(char* target1, char *subject1, char *uri1,
+ char *rt1, char *interface1, int permission1, char* target2, char *subject2,
+ char *uri2, char *rt2, char *interface2, int permission2)
+{
+ int ret;
+
+ LOG_BEGIN();
+
+ ret = agent_pairwise(target1, subject1, uri1, rt1, interface1, permission1,
+ target2, subject2, uri2, rt2, interface2, permission2);
+
+ LOG_END();
+
+ return ret;
+}
+
+int comp_group_unpair_resource(gchar *uuid_dev1, gchar *uuid_dev2)
+{
+ int ret;
+
+ LOG_BEGIN();
+
+ ret = agent_remove_myowned_device(uuid_dev1, uuid_dev2);
+
+ LOG_END();
+
+ return ret;
+}
+
/* Join to remote device group */
int comp_group_join_to(/* callback */){} //Join this device to in certain remote group (Async)
return result;
}
-
-int agent_remove_myowned_device(char* uuid_str)
+int agent_remove_myowned_device(char* uuid_str1, char *uuid_str2)
{
GVariant *variant = NULL;
int result = COMP_ERROR_NONE;
}
variant = g_dbus_proxy_call_sync(agent.gproxy_agent_service, "unpair",
- g_variant_new("(s)", uuid_str), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+ g_variant_new("(ss)", uuid_str1, uuid_str2), G_DBUS_CALL_FLAGS_NONE,
+ -1, NULL, &error);
if (variant) {
g_variant_get(variant, "(i)", &result);
LOGD("remove_mo status 0x%x", result);
<arg type="i" name="device_count" direction="out" />
<arg type="aa{sv}" name="device_info" direction="out" />
</method>
+ <method name="PairResource">
+ <arg type="s" name="target_1" direction="in"/>
+ <arg type="s" name="subject_1" direction="in"/>
+ <arg type="s" name="uri_1" direction="in"/>
+ <arg type="s" name="rt_1" direction="in"/>
+ <arg type="s" name="interface_1" direction="in"/>
+ <arg type="i" name="permission_1" direction="in"/>
+ <arg type="s" name="target_2" direction="in"/>
+ <arg type="s" name="subject_2" direction="in"/>
+ <arg type="s" name="uri_2" direction="in"/>
+ <arg type="s" name="rt_2" direction="in"/>
+ <arg type="s" name="interface_2" direction="in"/>
+ <arg type="i" name="permission_2" direction="in"/>
+ <arg type="i" name="result" direction="out"/>
+ </method>
+ <method name="UnpairResource">
+ <arg type="s" name="uuid_dev1" direction="in"/>
+ <arg type="s" name="uuid_dev2" direction="in"/>
+ <arg type="i" name="result" direction="out"/>
+ </method>
<!-- Signal (D-Bus) definitions -->
<signal name="GroupFound">