From: Jihoon Jung Date: Thu, 28 Jun 2018 09:11:01 +0000 (+0900) Subject: Add sender implementation X-Git-Tag: submit/tizen/20190131.065036~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=381fd600fbf8ae12623e59de5fe23c486b29037c;p=platform%2Fcore%2Fapi%2Fmulti-device-group.git Add sender implementation Signed-off-by: Jihoon Jung --- diff --git a/include/mdg.h b/include/mdg.h old mode 100644 new mode 100755 index 4ae2b05..15fd796 --- a/include/mdg.h +++ b/include/mdg.h @@ -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); + /** * @} */ diff --git a/src/mdg.c b/src/mdg.c index 1c4abe4..18e06c0 100755 --- 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); diff --git a/src/mdg_gdbus.xml b/src/mdg_gdbus.xml old mode 100644 new mode 100755 index e30676d..7b418db --- a/src/mdg_gdbus.xml +++ b/src/mdg_gdbus.xml @@ -65,11 +65,15 @@ + + + + @@ -77,13 +81,16 @@ + + - + - + + diff --git a/test/mdg-manager.c b/test/mdg-manager.c index 9a5c8ce..930d048 100755 --- a/test/mdg-manager.c +++ b/test/mdg-manager.c @@ -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 };