#include "ic-utils.h"
#include "icd.h"
#include "icd-ioty.h"
+#include "icd-ioty-type.h"
#include "icd-payload.h"
union icd_state_value_u {
OCRandomUuidResult random_res;
OCDiscoveryPayload *discovered;
struct OCResourcePayload *resource;
- int i, is_observable, ret, res_count;
+ int i, properties, ret, res_count;
char device_id[UUID_STRING_SIZE] = {0};
discovered = (OCDiscoveryPayload*)payload;
node = node->next;
}
- /* is_observable */
- is_observable = resource->bitmap & OC_OBSERVABLE;
+ /* Resource Properties */
+ properties = icd_ioty_oic_properties_to_properties(resource->bitmap);
/* port */
port = (resource->port)? resource->port:dev_addr->port;
+ /* TODO
+ * Check "resource->secure" and "resource->bitmap" */
value[i] = g_variant_new("(ssiasibsi)", resource->uri, device_id, ifaces, &types,
- is_observable, resource->secure, dev_addr->addr, port);
+ properties, resource->secure, dev_addr->addr, port);
DBG("found resource[%d] : %s", i, g_variant_print(value[i], FALSE));
resource = resource->next;
else
OCRepPayloadSetPropString(repr, key, str_value);
+ } else if (g_variant_is_of_type(var, G_VARIANT_TYPE ("a{sv}"))) {
+ GVariantIter state_iter;
+ repr_value = OCRepPayloadCreate();
+ g_variant_iter_init(&state_iter, var);
+ _icd_state_value_from_gvariant(repr_value, &state_iter);
+ OCRepPayloadSetPropObjectAsOwner(repr, key, repr_value);
+
} else if (g_variant_is_of_type(var, G_VARIANT_TYPE_ARRAY)) {
memset(&value_list, 0, sizeof(struct icd_state_list_s));
_icd_state_list_from_gvariant(var, &value_list, 0);
_icd_state_array_from_list(repr, &value_list, key);
- } else if (g_variant_is_of_type(var, G_VARIANT_TYPE("(siasa{sv}av)"))) {
- repr_value = icd_payload_representation_from_gvariant(var);
- OCRepPayloadSetPropObjectAsOwner(repr, key, repr_value);
+ } else {
+ ERR("Invalid type(%s)", g_variant_get_type_string(var));
}
}