int ret;
MDGManager* mdgmgr = static_cast<MDGManager*>(user_data);
- do {
- ret = mdg_device_find(mdgmgr->mdg_handle_, kRequestTimeout, true,
- &MDGManager::InvitedDeviceFoundCb, &MDGManager::InvitedDeviceFinishCb,
- user_data);
- if (ret != MDG_ERROR_IN_PROGRESS) {
- LOG(INFO) << "Some request in progress, wait and retry in 1 second";
- sleep(kRequestWaitingSec);
- } else if (ret != MDG_ERROR_NONE) {
- LOG(ERROR) << "Failed to find invited device: " << MDGErrorToString(ret);
- }
- } while (ret == MDG_ERROR_IN_PROGRESS);
+ ret = mdg_group_foreach_device(mdgmgr->mdg_handle_, mdgmgr->group_handle_,
+ &MDGManager::GroupForeachCb, user_data);
+ if (ret != MDG_ERROR_NONE)
+ LOG(ERROR) << "Failed to call mdg_group_foreach_device: "
+ << MDGErrorToString(ret);
}
-bool MDGManager::InvitedDeviceFoundCb(mdg_device_h device, void* user_data) {
- char* device_id;
- bool is_invited;
- char* model_name;
-
- int ret = mdg_device_info_get_device_id(device, &device_id);
- if (ret != MDG_ERROR_NONE) {
- LOG(ERROR) << "Failed to get device id: " << MDGErrorToString(ret);
- return true;
- }
-
- ret = mdg_device_info_is_invited(device, &is_invited);
- if (ret != MDG_ERROR_NONE) {
- LOG(ERROR) << "Failed to get is_invited: " << MDGErrorToString(ret);
- free(device_id);
- return true;
- }
-
- ret = mdg_device_info_get_model_name(device, &model_name);
- if (ret != MDG_ERROR_NONE) {
- LOG(ERROR) << "Failed to get device id: " << MDGErrorToString(ret);
- free(device_id);
- return true;
- }
-
- LOG(INFO) << "Found invited device. "
- << "device_id: " << device_id
- << ", is_invited: " << is_invited
- << ", model_name: " << model_name;
-
- free(model_name);
- free(device_id);
+bool MDGManager::GroupForeachCb(mdg_device_h device, void* user_data) {
+ LOG(INFO) << "GroupForeachCb Called";
MDGManager* mdgmgr = static_cast<MDGManager*>(user_data);
if (!mdgmgr->AddDevice(device))
return true;
}
-void MDGManager::InvitedDeviceFinishCb(int result, void* user_data) {
- LOG(INFO) << "Find invited device finished: " << result;
- MDGManager* mdgmgr = static_cast<MDGManager*>(user_data);
- LOG(INFO) << "Found " << g_list_length(mdgmgr->device_list_)
- << " invited devices";
-}
-
bool MDGManager::CreateGroup() {
int ret = mdg_group_create(mdg_handle_, const_cast<char*>(kGroupName));
if (ret == MDG_ERROR_NONE) {