void oc_process_baseline_interface(oc_resource_t *resource) { oc_rep_set_string_array(root, rt, resource->types); oc_core_encode_interfaces_mask(oc_rep_object(root), resource->interfaces); oc_rep_set_uint(root, p, resource->properties & ~OC_PERIODIC); }
static bool filter_resource(oc_resource_t *resource, const char *rt, int rt_len, CborEncoder *links) { int i; bool match = true; if (rt_len > 0) { match = false; for (i = 0; i < oc_string_array_get_allocated_size(resource->types); i++) { int size = oc_string_array_get_item_size(resource->types, i); const char *t = (const char *)oc_string_array_get_item(resource->types, i); if (rt_len == size && strncmp(rt, t, rt_len) == 0) { match = true; break; } } } if (!match) { return false; } oc_rep_start_object(*links, res); // uri oc_rep_set_text_string(res, href, oc_string(resource->uri)); // rt oc_rep_set_array(res, rt); for (i = 0; i < oc_string_array_get_allocated_size(resource->types); i++) { int size = oc_string_array_get_item_size(resource->types, i); const char *t = (const char *)oc_string_array_get_item(resource->types, i); if (size > 0) oc_rep_add_text_string(rt, t); } oc_rep_close_array(res, rt); // if oc_core_encode_interfaces_mask(oc_rep_object(res), resource->interfaces); // p oc_rep_set_object(res, p); oc_rep_set_uint(p, bm, resource->properties & ~OC_PERIODIC); #ifdef OC_SECURITY if (resource->properties & OC_SECURE) { oc_rep_set_boolean(p, sec, true); oc_rep_set_uint(p, port, oc_connectivity_get_dtls_port()); } #endif /* OC_SECURITY */ oc_rep_close_object(res, p); oc_rep_end_object(*links, res); return true; }