Add sender implementation
authorJihoon Jung <jh8801.jung@samsung.com>
Thu, 28 Jun 2018 09:11:01 +0000 (18:11 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Mon, 2 Jul 2018 10:40:01 +0000 (19:40 +0900)
Signed-off-by: Jihoon Jung <jh8801.jung@samsung.com>
include/mdg.h [changed mode: 0644->0755]
src/mdg.c
src/mdg_gdbus.xml [changed mode: 0644->0755]
test/mdg-manager.c

old mode 100644 (file)
new mode 100755 (executable)
index 4ae2b05..15fd796
@@ -440,64 +440,6 @@ int mdg_group_eject_device(mdg_h handle, mdg_group_h group,
 typedef void (*mdg_request_result_cb)(char *cmd, char *device_id,
                                        unsigned char *arg, int len, int ret, void *user_data);
 
-/**
- * @brief Requests my device to be joined to remote group.
- * @details This function requests a remote groups to join my device in the remote groups.
- *
- * @since_tizen 5.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/internet
- *
- * @param[in] handle The multi device group manager handle
- * @param[in] group Group resource list
- * @param[in] cb Callback handler to receive the result
- * @param[in] user_data User data pointer
- *
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #MDG_ERROR_NONE Successful
- * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
- *
- * @see mdg_group_create()
- * @see mdg_request_leave_group ()
- * @see mdg_request_create_group()
- * @see mdg_request_invite_device()
- * @see mdg_request_eject_device()
- * @see mdg_request_delete_group()
- *
- */
-int mdg_request_join_group(mdg_h handle, mdg_group_h group,
-               mdg_request_result_cb cb, void *user_data);
-
-/**
- * @brief Requests my device to be exit from remote group.
- * @details This function requests remote groups to exit my devices that belonged to the
- * remote group.
- *
- * @since_tizen 5.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/internet
- *
- * @param[in] handle The multi device group manager handle
- * @param[in] group Group handle
- * @param[in] cb Callback handler to receive the result
- * @param[in] user_data User data pointer
- *
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #MDG_ERROR_NONE Successful
- * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
- *
- * @see mdg_group_create()
- * @see mdg_request_join_group()
- * @see mdg_group_delete()
- * @see mdg_group_merge()
- * @see mdg_group_get_member_devices()
- *
- */
-int mdg_request_leave_group(mdg_h handle, mdg_group_h group,
-               mdg_request_result_cb cb, void *user_data);
-
 /**
  * @brief Requests to create a group.
  * @details We can create a group. This generated group can include device, and remote
@@ -591,6 +533,9 @@ int mdg_request_invite_device(mdg_h handle, mdg_group_h group,
 int mdg_request_eject_device(mdg_h handle, mdg_group_h group,
        mdg_device_h device, mdg_request_result_cb cb, void *user_data);
 
+int mdg_request_channel_list(mdg_h handle, mdg_device_h device,
+       mdg_request_result_cb cb, void *user_data);
+
 /**
  * @}
  */
index 1c4abe4e558b8ec27457d24bbb4121a8e3e0b868..18e06c01c6204bd089d8566e3a49db092040efed 100755 (executable)
--- a/src/mdg.c
+++ b/src/mdg.c
@@ -818,8 +818,8 @@ EXPORT_API int mdg_request_create_group(mdg_h handle,
 
        _DBG("Device id : %s", dev->device_id);
 
-       group_call_request_create_group_sync(_handle->group_proxy, dev->device_id,
-               group_name, &ret, NULL, &error);
+       group_call_request_create_group_sync(_handle->group_proxy, dev->device_id, dev->addr,
+               dev->secure_port, group_name, &ret, NULL, &error);
 
        return ret;
 }
@@ -850,8 +850,8 @@ EXPORT_API int mdg_request_invite_device(mdg_h handle,
        _DBG("%s", grp->group_name);
        _DBG("%s", dev->device_id);
 
-       group_call_request_invite(_handle->group_proxy, grp->device_id, grp->group_name,
-               dev->device_id, PIN, NULL, NULL, &error);
+       group_call_request_invite(_handle->group_proxy, grp->device_id, dev->addr,
+               dev->secure_port, grp->group_name, dev->device_id, PIN, NULL, NULL, &error);
        if (error) {
                _ERR("Failed DBus call [%s]", error->message);
                g_error_free(error);
@@ -887,8 +887,39 @@ EXPORT_API int mdg_request_eject_device(mdg_h handle,
        _DBG("%s", grp->group_name);
        _DBG("%s", dev->device_id);
 
-       group_call_request_eject(_handle->group_proxy, grp->device_id, grp->group_name,
-               dev->device_id, NULL, NULL, &error);
+       group_call_request_eject(_handle->group_proxy, grp->device_id, dev->addr,
+               dev->secure_port, grp->group_name, dev->device_id, NULL, NULL, &error);
+       if (error) {
+               _ERR("Failed DBus call [%s]", error->message);
+               g_error_free(error);
+               ret = MDG_ERROR_IO_ERROR;
+       }
+
+       return ret;
+}
+
+EXPORT_API int mdg_request_channel_list(mdg_h handle, mdg_device_h device, mdg_request_result_cb cb,
+       void *user_data)
+{
+       int ret = MDG_ERROR_NONE;
+       GError *error = NULL;
+
+       NOTUSED(cb);
+       NOTUSED(user_data);
+
+       CHECK_FEATURE_SUPPORTED(MDG_FEATURE);
+
+       mdg_manager_s *_handle = handle;
+       mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER);
+       CHECK_HANDLE_IS_VALID(handle);
+
+       mdg_device_s *dev = (mdg_device_s *)device;
+       mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER);
+
+       _DBG("%s", dev->device_id);
+
+       group_call_request_channel_list(_handle->group_proxy, dev->device_id, dev->addr,
+               dev->secure_port, NULL, NULL, &error);
        if (error) {
                _ERR("Failed DBus call [%s]", error->message);
                g_error_free(error);
old mode 100644 (file)
new mode 100755 (executable)
index e30676d..7b418db
                </method>
                <method name="RequestCreateGroup">
                        <arg type="s" name="uuid" direction="in" />
+                       <arg type="s" name="addr" direction="in"/>
+                       <arg type="i" name="port" direction="in"/>
                        <arg type="s" name="group_name" direction="in" />
                        <arg type="i" name="result" direction="out" />
                </method>
                <method name="RequestInvite">
                        <arg type="s" name="uuid" direction="in" />
+                       <arg type="s" name="addr" direction="in"/>
+                       <arg type="i" name="port" direction="in"/>
                        <arg type="s" name="group_name" direction="in" />
                        <arg type="s" name="target_uuid" direction="in" />
                        <arg type="s" name="pin" direction="in" />
                </method>
                <method name="RequestEject">
                        <arg type="s" name="uuid" direction="in" />
+                       <arg type="s" name="addr" direction="in"/>
+                       <arg type="i" name="port" direction="in"/>
                        <arg type="s" name="group_name" direction="in" />
                        <arg type="s" name="target_uuid" direction="in" />
                        <arg type="i" name="result" direction="out" />
                </method>
-               <method name="RequestDeleteGroup">
+               <method name="RequestChannelList">
                        <arg type="s" name="uuid" direction="in" />
-                       <arg type="s" name="group_name" direction="in" />
+                       <arg type="s" name="addr" direction="in"/>
+                       <arg type="i" name="port" direction="in"/>
                        <arg type="i" name="result" direction="out" />
                </method>
                <!-- Signal (D-Bus) definitions -->
index 9a5c8ce5758c11b49ef151b2656c8be4fc5ead9a..930d048099ec26d223c491f8527622ecbd52a976 100755 (executable)
@@ -977,6 +977,47 @@ static int run_request_eject(MManager *mm, struct menu_data *menu)
        return RET_SUCCESS;
 }
 
+static int run_request_channel_list(MManager *mm, struct menu_data *menu)
+{
+       int ret = 0;
+       int dev_count = 0;
+       mdg_device_h device = NULL;
+
+       dev_count = g_list_length(found_device_list);
+
+       if (0 >= dev_count) {
+               msgr("No Device");
+               return RET_SUCCESS;
+       }
+
+       int dev_idx;
+       if (device_idx != NULL && strlen(device_idx)) {
+               dev_idx = (unsigned short)strtol(device_idx, NULL, 10);
+               if (0 >= dev_idx) {
+                       msgp("Invalid index. set to 1");
+                       dev_idx = 1;
+               }
+       }
+
+       if (found_device_list) {
+               device = g_list_nth_data(found_device_list, dev_idx - 1);
+               if (NULL == device) {
+                       msgr("Failed to g_hash_table_find");
+                       return RET_FAILURE;
+               }
+       }
+
+       ret = mdg_request_channel_list(handle, device, receive_request_result, NULL);
+       if (MDG_ERROR_NONE != ret) {
+               msgr("Failed to Request Eject: [%s(0x%X)]", mdg_error_to_string(ret), ret);
+               return RET_FAILURE;
+       }
+
+       msg(" - mdg_request_eject_device() ret: [0x%X] [%s]", ret, mdg_error_to_string(ret));
+
+       return RET_SUCCESS;
+}
+
 void __channel_cb(int result, mdg_device_h device, char *channel_id,
        unsigned char *arg, int len, void *user_data)
 {
@@ -1092,6 +1133,13 @@ static struct menu_data menu_request_eject[] = {
        { NULL, NULL, },
 };
 
+static struct menu_data menu_request_channel_list[] = {
+       { "0", "Show Found Device(s)", NULL, run_devices_show, NULL },
+       { "1", "Device Index", NULL, NULL, device_idx },
+       { "2", "Run", NULL, run_request_channel_list, NULL },
+       { NULL, NULL, },
+};
+
 static struct menu_data menu_regist_channel[] = {
        { "0", "Channel ID", NULL, NULL, channel_id },
        { "1", "Run", NULL, run_regist_channel, NULL },
@@ -1116,11 +1164,11 @@ struct menu_data menu_mdg_manager[] = {
        { "9", "Eject Device", menu_group_eject_device, NULL, NULL }, // 0
        { "10", "Find Invited Device(s)", menu_devices_find_invited_device, NULL, NULL }, // 0
        { "11", "Show Invited Device(s)", NULL, run_invited_devices_show, NULL }, // 0
-       { "12", "Request Create Group", menu_request_create_group, NULL, NULL },
-       { "13", "Request Invite", menu_request_invite, NULL, NULL },
-       { "14", "Request Eject", menu_request_eject, NULL, NULL },
-       { "15", "Regist Channel", menu_regist_channel, NULL, NULL },
-       { "16", "Unregist Channel", menu_unregist_channel, NULL, NULL },
-       { "17", "Get Channel(s)", NULL, run_invited_devices_show, NULL },
+       { "12", "Request Create Group", menu_request_create_group, NULL, NULL }, // 0
+       { "13", "Request Invite", menu_request_invite, NULL, NULL }, // 0
+       { "14", "Request Eject", menu_request_eject, NULL, NULL }, // 0
+       { "15", "Request Channel List", menu_request_channel_list, NULL, NULL }, // 0
+       { "16", "Regist Channel", menu_regist_channel, NULL, NULL },
+       { "17", "Unregist Channel", menu_unregist_channel, NULL, NULL },
        { "18", "Send Message", menu_send_data, NULL, NULL }, // 0
 };