eCode == OC_STACK_RESOURCE_CHANGED) {
mdgd_check_null_ret("user_data", user_data);
mdgd_group_t *group = (mdgd_group_t *)user_data;
- std::map<std::string, AttributeValue> groups = rep.getValues();
- std::map<std::string, AttributeValue>::iterator iter;
+ std::vector<std::string> group_list;
+ int i;
- for (iter = groups.begin(); iter != groups.end(); ++iter) {
- std::string group_name = (*iter).first;
- group->group_name = g_strdup(group_name.c_str());
- LOG_DEBUG("Group Found : %s, Type : %d", group->group_name, group->type);
+ if (!rep.getValue("GroupList", group_list)) {
+ LOG_ERR("GroupList not found in representation");
+ LOG_END();
+ return;
+ }
- mdgd_group_notify_event(group->sender, MDGD_EVENT_GROUP_FOUND, MDGD_ERROR_NONE, (void *)group);
+ LOG_DEBUG("Device %s Number of groups %d", group->device_id,
+ group_list.size());
+ for (i = 0; i < group_list.size(); i++) {
+ group->group_name = g_strdup(group_list[i].c_str());
+ LOG_DEBUG("Group Found : %s, Type : %d", group->group_name,
+ group->type);
+ mdgd_group_notify_event(group->sender, MDGD_EVENT_GROUP_FOUND,
+ MDGD_ERROR_NONE, (void *)group);
g_free(group->group_name);
group->group_name = NULL;
}
char *groups[256];
mdgd_db_get_groups(groups, &group_count);
+ std::vector<std::string> group_list;
for (int i = 0; i < group_count; i++) {
LOG_DEBUG("%d. group name : %s", i+1, groups[i]);
- responseRep.setValue(std::string(groups[i]), "NONE");
+ group_list.push_back(groups[i]);
}
+ responseRep.setValue("GroupList", group_list);
} else {
LOG_ERR("Unknown Resource URI");
}