- Remove baseURI and add anchor property.
- Plumb content format through to parsing/converting payloads.
Change-Id: I05d2a9263b085dec3683f6345190a4b4574ff2dc
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/17575
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: Dan Mihai <Daniel.Mihai@microsoft.com>
/** Resource URI used to discover Proxy */
#define OC_RSRVD_PROXY_OPTION_ID 35
-/** Base URI. */
-#define OC_RSRVD_BASE_URI "baseURI"
-
/** Unique value per collection/link. */
#define OC_RSRVD_INS "ins"
{
char* uri;
char* rel;
+ char* anchor;
OCStringLL* types;
OCStringLL* interfaces;
uint8_t bitmap;
/** Device Id */
char *sid;
- /** A special case for handling RD address. */
- char* baseURI;
-
/** Name */
char *name;
if target_os != 'android':
rd_env.PrependUnique(RPATH = [rd_env.get('BUILD_DIR')])
-rd_env.PrependUnique(LIBS = ['octbstack', 'oc', 'oc_logger'])
+rd_env.PrependUnique(LIBS = ['octbstack', 'oc', 'oc_logger', 'connectivity_abstraction'])
if target_os not in ['windows']:
rd_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-Wextra', '-std=c++0x'])
OCDiscoveryPayload *discPayload = NULL;
EXPECT_EQ(OC_STACK_OK, OCRDDatabaseDiscoveryPayloadCreate(OC_RSRVD_INTERFACE_LL, NULL, &discPayload));
- EXPECT_STREQ("192.168.1.1:12345", discPayload->baseURI);
bool foundThermostat = false;
bool foundLight = false;
for (OCResourcePayload *resource = discPayload->resources; resource; resource = resource->next)
OCDiscoveryPayload *discPayload = NULL;
EXPECT_EQ(OC_STACK_OK, OCRDDatabaseDiscoveryPayloadCreate(OC_RSRVD_INTERFACE_LL, NULL, &discPayload));
- EXPECT_STREQ("192.168.1.1:12345", discPayload->baseURI);
bool foundThermostat = false;
bool foundLight = false;
bool foundLight2 = false;
uint32_t *gatewayId)
{
OCPayload *ocPayload = NULL;
- OCParsePayload(&ocPayload, PAYLOAD_TYPE_REPRESENTATION, payload, payloadSize);
+ OCParsePayload(&ocPayload, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION, payload, payloadSize);
OCRepPayload *repPayload = (OCRepPayload *)ocPayload;
OCStackResult res = RMPParseResponsePayload(repPayload, gatewayId, NULL, NULL, NULL);
if (OC_STACK_OK != res)
return OC_STACK_INVALID_PARAM;
}
- result = OCConvertPayload(response->payload, &cbor, &size);
+ result = OCConvertPayload(response->payload, OC_FORMAT_CBOR, &cbor, &size);
if (result != OC_STACK_OK)
{
OIC_LOG(ERROR, TAG, "Can't convert OCPayload to cbor");
goto exit;
}
- result = OCConvertPayload((OCPayload *)payload, &cbor, &cbor_len);
+ result = OCConvertPayload((OCPayload *)payload, OC_FORMAT_CBOR, &cbor, &cbor_len);
if (result != OC_STACK_OK)
{
OIC_LOG(ERROR, TAG, "Can't convert OCPayload to cbor");
goto exit;
}
- result = OCParsePayload(&payload, PAYLOAD_TYPE_REPRESENTATION, data, size);
+ result = OCParsePayload(&payload, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION, data, size);
if (result != OC_STACK_OK)
{
OIC_LOG(ERROR, TAG, "Can't parse cbor data from DB");
extern "C"
{
#endif
-OCStackResult OCParsePayload(OCPayload** outPayload, OCPayloadType type,
+OCStackResult OCParsePayload(OCPayload** outPayload, OCPayloadFormat format, OCPayloadType type,
const uint8_t* payload, size_t payloadSize);
-OCStackResult OCConvertPayload(OCPayload* payload, uint8_t** outPayload, size_t* size);
+OCStackResult OCConvertPayload(OCPayload* payload, OCPayloadFormat format,
+ uint8_t** outPayload, size_t* size);
#ifdef __cplusplus
}
/** Flag indicating notification.*/
uint8_t notificationFlag;
+ /** Payload format retrieved from the received request PDU. */
+ OCPayloadFormat payloadFormat;
+
/** Payload Size.*/
size_t payloadSize;
uint8_t numRcvdVendorSpecificHeaderOptions, uint32_t observationOption,
OCQualityOfService qos, char * query,
OCHeaderOption * rcvdVendorSpecificHeaderOptions,
- uint8_t * payload, CAToken_t requestToken,
+ OCPayloadFormat payloadFormat, uint8_t * payload, CAToken_t requestToken,
uint8_t tokenLength,
char * resourceUrl, size_t reqTotalSize,
OCPayloadFormat acceptFormat,
* @param endpoint Device address of the requester.
* @param resource Resource handle.
* @param queryBuf Resource query of request.
+ * @param payloadFormat Content format of payload.
* @param payloadType Type of payload.
* @param payload cbor value of the payload.
* @param payloadSize Size of payload.
OCResourceHandle resource,
char * queryBuf,
OCPayloadType payloadType,
+ OCPayloadFormat payloadFormat,
uint8_t * payload,
size_t payloadSize,
uint8_t numVendorOptions,
/** The REST method retrieved from received request PDU.*/
OCMethod method;
+ /** the provided payload format. */
+ OCPayloadFormat payloadFormat;
+
/** the requested payload format. */
OCPayloadFormat acceptFormat;
while(payload && payload->resources)
{
OIC_LOG_V(level, PL_TAG, "\tDI: %s", payload->sid);
- if (payload->baseURI)
- {
- OIC_LOG_V(level, PL_TAG, "\tBase URI:%s", payload->baseURI);
- }
if (payload->name)
{
OIC_LOG_V(level, PL_TAG, "\tNAME: %s", payload->name);
{
OIC_LOG_V(level, PL_TAG, "\tRelation:%s", res->rel);
}
+ if (res->anchor)
+ {
+ OIC_LOG_V(level, PL_TAG, "\tAnchor:%s", res->anchor);
+ }
OIC_LOG(level, PL_TAG, "\tResource Types:");
OCStringLL* strll = res->types;
while(strll)
result = AddServerRequest(&request, 0, 0, 1, OC_REST_GET,
0, observer->resource->sequenceNum, qos,
- observer->query, NULL, NULL,
+ observer->query, NULL, OC_FORMAT_UNDEFINED, NULL,
observer->token, observer->tokenLength,
observer->resUri, 0, observer->acceptFormat,
observer->acceptVersion, &observer->devAddr);
OIC_LOG(DEBUG, TAG, "This notification is for Presence");
result = AddServerRequest(&request, 0, 0, 1, OC_REST_GET,
0, resPtr->sequenceNum, qos, resourceObserver->query,
- NULL, NULL,
+ NULL, OC_FORMAT_UNDEFINED, NULL,
resourceObserver->token, resourceObserver->tokenLength,
resourceObserver->resUri, 0, resourceObserver->acceptFormat,
resourceObserver->acceptVersion, &resourceObserver->devAddr);
result = AddServerRequest(&request, 0, 0, 1, OC_REST_GET,
0, resource->sequenceNum, qos, observer->query,
- NULL, NULL, observer->token, observer->tokenLength,
+ NULL, OC_FORMAT_UNDEFINED, NULL, observer->token, observer->tokenLength,
observer->resUri, 0, observer->acceptFormat,
observer->acceptVersion, &observer->devAddr);
OICFree(payload->uri);
OICFree(payload->rel);
+ OICFree(payload->anchor);
OCFreeOCStringLL(payload->types);
OCFreeOCStringLL(payload->interfaces);
OCDiscoveryEndpointDestroy(payload->eps);
OCDiscoveryResourceDestroy(payload->next);
OICFree(payload);
}
+
void OCDiscoveryPayloadDestroy(OCDiscoveryPayload* payload)
{
if (!payload)
return;
}
OICFree(payload->sid);
- OICFree(payload->baseURI);
OCFreeOCStringLL(payload->type);
OICFree(payload->name);
OCFreeOCStringLL(payload->iface);
// Arbitrarily chosen size that seems to contain the majority of packages
#define INIT_SIZE (255)
-// Discovery Links Map with endpoints Length.
-#define LINKS_MAP_LEN_WITH_EPS (5)
-
-// Discovery Links Map without endpoints Length.
-#define LINKS_MAP_LEN_WITHOUT_EPS (4)
+// Discovery Links Map Length.
+#define LINKS_MAP_LEN (4)
// Endpoint Map length, it contains "ep", "pri".
#define EP_MAP_LEN (2)
// Functions all return either a CborError, or a negative version of the OC_STACK return values
-static int64_t OCConvertPayloadHelper(OCPayload *payload, uint8_t *outPayload, size_t *size);
-static int64_t OCConvertDiscoveryPayload(OCDiscoveryPayload *payload, uint8_t *outPayload,
- size_t *size);
+static int64_t OCConvertPayloadHelper(OCPayload *payload, OCPayloadFormat format,
+ uint8_t *outPayload, size_t *size);
+static int64_t OCConvertDiscoveryPayload(OCDiscoveryPayload *payload, OCPayloadFormat format,
+ uint8_t *outPayload, size_t *size);
static int64_t OCConvertRepPayload(OCRepPayload *payload, uint8_t *outPayload, size_t *size);
static int64_t OCConvertRepMap(CborEncoder *map, const OCRepPayload *payload);
static int64_t OCConvertPresencePayload(OCPresencePayload *payload, uint8_t *outPayload,
static int64_t ConditionalAddTextStringToMap(CborEncoder *map, const char *key, size_t keylen,
const char *value);
-OCStackResult OCConvertPayload(OCPayload* payload, uint8_t** outPayload, size_t* size)
+OCStackResult OCConvertPayload(OCPayload* payload, OCPayloadFormat format,
+ uint8_t** outPayload, size_t* size)
{
// TinyCbor Version 47a78569c0 or better on master is required for the re-allocation
// strategy to work. If you receive the following assertion error, please do a git-pull
{
out = (uint8_t *)OICCalloc(1, curSize);
VERIFY_PARAM_NON_NULL(TAG, out, "Failed to allocate payload");
- err = OCConvertPayloadHelper(payload, out, &curSize);
+ err = OCConvertPayloadHelper(payload, format, out, &curSize);
if (CborErrorOutOfMemory != err)
{
return ret;
}
-static int64_t OCConvertPayloadHelper(OCPayload* payload, uint8_t* outPayload, size_t* size)
+static int64_t OCConvertPayloadHelper(OCPayload* payload, OCPayloadFormat format,
+ uint8_t* outPayload, size_t* size)
{
switch(payload->type)
{
case PAYLOAD_TYPE_DISCOVERY:
- return OCConvertDiscoveryPayload((OCDiscoveryPayload*)payload, outPayload, size);
+ return OCConvertDiscoveryPayload((OCDiscoveryPayload*)payload, format,
+ outPayload, size);
case PAYLOAD_TYPE_REPRESENTATION:
return OCConvertRepPayload((OCRepPayload*)payload, outPayload, size);
case PAYLOAD_TYPE_PRESENCE:
return err;
}
-static int64_t OCConvertDiscoveryPayload(OCDiscoveryPayload *payload, uint8_t *outPayload,
- size_t *size)
+static int64_t OCConvertDiscoveryPayloadCbor(OCDiscoveryPayload *payload,
+ uint8_t *outPayload, size_t *size)
{
CborEncoder encoder;
int64_t err = CborNoError;
"di": "0685B960-736F-46F7-BEC0-9E6CBD61ADC1",
links :[ // linksArray contains maps of resources
{
- href, rt, if, policy, eps // Resource 1
+ href, rt, if, policy // Resource 1
},
{
- href, rt, if, policy, eps // Resource 2
+ href, rt, if, policy // Resource 2
},
.
.
VERIFY_CBOR_SUCCESS(TAG, err, "Failed setting RT");
// Insert interfaces
- if (payload->iface)
- {
- err |= OCStringLLJoin(&rootMap, OC_RSRVD_INTERFACE, payload->iface);
- VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding interface types tag/value");
- }
-
- // Insert baseURI if present
- err |= ConditionalAddTextStringToMap(&rootMap, OC_RSRVD_BASE_URI,
- sizeof(OC_RSRVD_BASE_URI) - 1,
- payload->baseURI);
- VERIFY_CBOR_SUCCESS(TAG, err, "Failed setting baseURI");
+ err |= OCStringLLJoin(&rootMap, OC_RSRVD_INTERFACE, payload->iface);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding interface types tag/value");
// Insert Links into the root map.
CborEncoder linkArray;
VERIFY_PARAM_NON_NULL(TAG, resource, "Failed retrieving resource");
// resource map inside the links array.
- linkMapLen = resource->eps ? LINKS_MAP_LEN_WITH_EPS : LINKS_MAP_LEN_WITHOUT_EPS;
+ linkMapLen = LINKS_MAP_LEN;
if (resource->rel)
{
++linkMapLen;
VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding uri to links map");
// Rel - Not a mandatory field
- if (resource->rel)
- {
- err |= AddTextStringToMap(&linkMap, OC_RSRVD_REL, sizeof(OC_RSRVD_REL) - 1,
- resource->rel);
- VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding rel to links map");
- }
+ err |= ConditionalAddTextStringToMap(&linkMap, OC_RSRVD_REL, sizeof(OC_RSRVD_REL) - 1,
+ resource->rel);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding rel to links map");
// Resource Type
- if (resource->types)
- {
- err |= OCStringLLJoin(&linkMap, OC_RSRVD_RESOURCE_TYPE, resource->types);
- VERIFY_CBOR_SUCCESS(TAG, err,
- "Failed adding resourceType tag/value to links map");
- }
+ err |= OCStringLLJoin(&linkMap, OC_RSRVD_RESOURCE_TYPE, resource->types);
+ VERIFY_CBOR_SUCCESS(TAG, err,
+ "Failed adding resourceType tag/value to links map");
+
// Interface Types
- if (resource->interfaces)
- {
- err |= OCStringLLJoin(&linkMap, OC_RSRVD_INTERFACE, resource->interfaces);
- VERIFY_CBOR_SUCCESS(TAG, err,
- "Failed adding interfaces tag/value to links map");
- }
+ err |= OCStringLLJoin(&linkMap, OC_RSRVD_INTERFACE, resource->interfaces);
+ VERIFY_CBOR_SUCCESS(TAG, err,
+ "Failed adding interfaces tag/value to links map");
// Policy
CborEncoder policyMap;
err |= cbor_encode_boolean(&policyMap, resource->secure);
VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding secure value to policy map");
- if (resource->secure || payload->baseURI)
+ if (resource->secure)
{
err |= cbor_encode_text_string(&policyMap, OC_RSRVD_HOSTING_PORT,
sizeof(OC_RSRVD_HOSTING_PORT) - 1);
err |= cbor_encoder_close_container(&linkMap, &policyMap);
VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing policy map");
+ // Finished encoding a resource, close the map.
+ err |= cbor_encoder_close_container(&linkArray, &linkMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing link map");
+ }
+ // Close links array inside the root map.
+ err |= cbor_encoder_close_container(&rootMap, &linkArray);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing link array");
+ // close root map inside the root array.
+ err |= cbor_encoder_close_container(&rootArray, &rootMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing root map");
+
+ payload = payload->next;
+ }
+
+ // Close the final root array.
+ err |= cbor_encoder_close_container(&encoder, &rootArray);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing root array");
+
+exit:
+ return checkError(err, &encoder, outPayload, size);
+}
+
+static int64_t OCConvertDiscoveryPayloadVndOcfCbor(OCDiscoveryPayload *payload,
+ uint8_t *outPayload, size_t *size)
+{
+ CborEncoder encoder;
+ int64_t err = CborNoError;
+
+ cbor_encoder_init(&encoder, outPayload, *size, 0);
+
+ /*
+ The format for the payload is "modelled" as JSON.
+
+ [ // rootArray
+ {
+ href, anchor, rt, if, policy, eps // Resource 1
+ },
+ {
+ href, anchor, rt, if, policy, eps // Resource 2
+ },
+ .
+ .
+ .
+ ]
+ */
+
+ // Open the main root array
+ size_t arrayCount = 0;
+ for (OCDiscoveryPayload *temp = payload; temp; temp = temp->next)
+ {
+ arrayCount += OCDiscoveryPayloadGetResourceCount(temp);
+ }
+ CborEncoder rootArray;
+ err |= cbor_encoder_create_array(&encoder, &rootArray, arrayCount);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed creating discovery root array");
+
+ while (payload && payload->resources)
+ {
+ size_t resourceCount = OCDiscoveryPayloadGetResourceCount(payload);
+ for (size_t i = 0; i < resourceCount; ++i)
+ {
+ OCResourcePayload *resource = OCDiscoveryPayloadGetResource(payload, i);
+
+ // Open a link map in the root array
+ CborEncoder linkMap;
+ err |= cbor_encoder_create_map(&rootArray, &linkMap, CborIndefiniteLength);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed creating discovery map");
+
+ // Uri
+ err |= AddTextStringToMap(&linkMap, OC_RSRVD_HREF, sizeof(OC_RSRVD_HREF) - 1,
+ resource->uri);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding uri to links map");
+
+ // Rel - Not a mandatory field
+ err |= ConditionalAddTextStringToMap(&linkMap, OC_RSRVD_REL, sizeof(OC_RSRVD_REL) - 1,
+ resource->rel);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding rel to links map");
+
+ // Anchor - Not a mandatory field
+ if (resource->anchor)
+ {
+ err |= AddTextStringToMap(&linkMap, OC_RSRVD_URI, sizeof(OC_RSRVD_URI) - 1,
+ resource->anchor);
+ }
+ else
+ {
+ char anchor[MAX_URI_LENGTH];
+ snprintf(anchor, MAX_URI_LENGTH, "ocf://%s", payload->sid);
+ err |= AddTextStringToMap(&linkMap, OC_RSRVD_URI, sizeof(OC_RSRVD_URI) - 1,
+ anchor);
+ }
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding anchor to links map");
+
+ // Resource Type
+ err |= OCStringLLJoin(&linkMap, OC_RSRVD_RESOURCE_TYPE, resource->types);
+ VERIFY_CBOR_SUCCESS(TAG, err,
+ "Failed adding resourceType tag/value to links map");
+
+ // Interface Types
+ err |= OCStringLLJoin(&linkMap, OC_RSRVD_INTERFACE, resource->interfaces);
+ VERIFY_CBOR_SUCCESS(TAG, err,
+ "Failed adding interfaces tag/value to links map");
+
+ // Policy
+ CborEncoder policyMap;
+ err |= cbor_encode_text_string(&linkMap, OC_RSRVD_POLICY,
+ sizeof(OC_RSRVD_POLICY) - 1);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding policy tag to links map");
+ err |= cbor_encoder_create_map(&linkMap, &policyMap, CborIndefiniteLength);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding policy map to links map");
+
+ // Bitmap
+ err |= cbor_encode_text_string(&policyMap, OC_RSRVD_BITMAP,
+ sizeof(OC_RSRVD_BITMAP) - 1);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding bitmap tag to policy map");
+ err |= cbor_encode_uint(&policyMap, resource->bitmap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed adding bitmap value to policy map");
+
+ err |= cbor_encoder_close_container(&linkMap, &policyMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing policy map");
+
// Endpoints
size_t epsCount = OCEndpointPayloadGetEndpointCount(resource->eps);
{
CborEncoder epsArray;
err |= cbor_encode_text_string(&linkMap, OC_RSRVD_ENDPOINTS,
- sizeof(OC_RSRVD_ENDPOINTS) - 1);
+ sizeof(OC_RSRVD_ENDPOINTS) - 1);
VERIFY_CBOR_SUCCESS(TAG, err, "Failed setting endpoints array tag");
err |= cbor_encoder_create_array(&linkMap, &epsArray, epsCount);
err |= cbor_encoder_close_container(&linkMap, &epsArray);
VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing endpoints map");
}
- // Finsihed encoding a resource, close the map.
- err |= cbor_encoder_close_container(&linkArray, &linkMap);
+
+ // Finished encoding a resource, close the map.
+ err |= cbor_encoder_close_container(&rootArray, &linkMap);
VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing link map");
}
- // Close links array inside the root map.
- err |= cbor_encoder_close_container(&rootMap, &linkArray);
- VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing link array");
- // close root map inside the root array.
- err |= cbor_encoder_close_container(&rootArray, &rootMap);
- VERIFY_CBOR_SUCCESS(TAG, err, "Failed closing root map");
payload = payload->next;
}
return checkError(err, &encoder, outPayload, size);
}
+static int64_t OCConvertDiscoveryPayload(OCDiscoveryPayload *payload, OCPayloadFormat format,
+ uint8_t *outPayload, size_t *size)
+{
+ if (OC_FORMAT_VND_OCF_CBOR == format)
+ {
+ return OCConvertDiscoveryPayloadVndOcfCbor(payload, outPayload, size);
+ }
+ else
+ {
+ return OCConvertDiscoveryPayloadCbor(payload, outPayload, size);
+ }
+}
+
static int64_t OCConvertArrayItem(CborEncoder *array, const OCRepPayloadValueArray *valArray,
size_t index)
{
static int64_t AddTextStringToMap(CborEncoder* map, const char* key, size_t keylen,
const char* value)
{
+ if (!key || !value)
+ {
+ return CborErrorInvalidUtf8TextString;
+ }
int64_t err = cbor_encode_text_string(map, key, keylen);
if (CborNoError != err)
{
*/
#define UINT64_MAX_STRLEN 20
-static OCStackResult OCParseDiscoveryPayload(OCPayload **outPayload, CborValue *arrayVal);
+static OCStackResult OCParseDiscoveryPayload(OCPayload **outPayload, OCPayloadFormat format,
+ CborValue *arrayVal);
static CborError OCParseSingleRepPayload(OCRepPayload **outPayload, CborValue *repParent, bool isRoot);
static OCStackResult OCParseRepPayload(OCPayload **outPayload, CborValue *arrayVal);
static OCStackResult OCParsePresencePayload(OCPayload **outPayload, CborValue *arrayVal);
static OCStackResult OCParseSecurityPayload(OCPayload **outPayload, const uint8_t *payload, size_t size);
-OCStackResult OCParsePayload(OCPayload **outPayload, OCPayloadType payloadType,
- const uint8_t *payload, size_t payloadSize)
+OCStackResult OCParsePayload(OCPayload **outPayload, OCPayloadFormat payloadFormat,
+ OCPayloadType payloadType, const uint8_t *payload, size_t payloadSize)
{
OCStackResult result = OC_STACK_MALFORMED_RESPONSE;
CborError err;
switch(payloadType)
{
case PAYLOAD_TYPE_DISCOVERY:
- result = OCParseDiscoveryPayload(outPayload, &rootValue);
+ result = OCParseDiscoveryPayload(outPayload, payloadFormat, &rootValue);
break;
case PAYLOAD_TYPE_REPRESENTATION:
result = OCParseRepPayload(outPayload, &rootValue);
return err;
}
-static OCStackResult OCParseDiscoveryPayload(OCPayload **outPayload, CborValue *rootValue)
+static OCStackResult OCParseDiscoveryPayloadCbor(OCPayload **outPayload,
+ CborValue *rootValue)
{
OCStackResult ret = OC_STACK_INVALID_PARAM;
OCResourcePayload *resource = NULL;
OCDiscoveryPayload *temp = NULL;
OCDiscoveryPayload *rootPayload = NULL;
OCDiscoveryPayload *curPayload = NULL;
- OCEndpointPayload *endpoint = NULL;
size_t len = 0;
CborError err = CborNoError;
*outPayload = NULL;
}
}
- // BaseURI - Not a mandatory field
- err = cbor_value_map_find_value(&rootMap, OC_RSRVD_BASE_URI, &curVal);
- VERIFY_CBOR_SUCCESS(TAG, err, "to find uri tag");
- if (cbor_value_is_text_string(&curVal))
- {
- err = cbor_value_dup_text_string(&curVal, &(temp->baseURI), &len, NULL);
- VERIFY_CBOR_SUCCESS(TAG, err, "to find base uri value");
- }
-
// RT - Not a mandatory field
err = cbor_value_map_find_value(&rootMap, OC_RSRVD_RESOURCE_TYPE, &curVal);
if (cbor_value_is_valid(&curVal))
VERIFY_CBOR_SUCCESS(TAG, err, "to find rel value");
}
- // ResourceTypes
+ // Resource Types
err = OCParseStringLL(&resourceMap, OC_RSRVD_RESOURCE_TYPE, &resource->types);
VERIFY_CBOR_SUCCESS(TAG, err, "to find resource type tag/value");
// Interface Types
err = OCParseStringLL(&resourceMap, OC_RSRVD_INTERFACE, &resource->interfaces);
+ // TODO Why this block? It adds oic.if.ll if we don't parse anything:
if (CborNoError != err)
{
if (!OCResourcePayloadAddStringLL(&resource->interfaces, OC_RSRVD_INTERFACE_LL))
}
#endif
#endif
- // Endpoints
- CborValue epsMap;
- err = cbor_value_map_find_value(&resourceMap, OC_RSRVD_ENDPOINTS, &epsMap);
- VERIFY_CBOR_SUCCESS(TAG, err, "to find eps tag");
-
- if (cbor_value_is_array(&epsMap))
- {
- CborValue epMap;
- err = cbor_value_enter_container(&epsMap, &epMap);
- VERIFY_CBOR_SUCCESS(TAG, err, "to enter endpoint map");
-
- while (cbor_value_is_map(&epMap))
- {
- endpoint = NULL;
- int pri = 0;
- char *endpointStr = NULL;
- endpoint = (OCEndpointPayload *)OICCalloc(1, sizeof(OCEndpointPayload));
- VERIFY_PARAM_NON_NULL(TAG, endpoint, "Failed allocating endpoint payload");
-
- // ep
- err = cbor_value_map_find_value(&epMap, OC_RSRVD_ENDPOINT, &curVal);
- VERIFY_CBOR_SUCCESS(TAG, err, "to find endpoint tag");
- err = cbor_value_dup_text_string(&curVal, &endpointStr, &len, NULL);
- VERIFY_CBOR_SUCCESS(TAG, err, "to find endpoint value");
-
- OCStackResult parseResult = OCParseEndpointString(endpointStr, endpoint);
- OICFree(endpointStr);
-
- if (OC_STACK_OK == parseResult)
- {
- // pri
- err = cbor_value_map_find_value(&epMap, OC_RSRVD_PRIORITY, &curVal);
- VERIFY_CBOR_SUCCESS(TAG, err, "to find priority tag");
- err = cbor_value_get_int(&curVal, &pri);
- VERIFY_CBOR_SUCCESS(TAG, err, "to find priority value");
- endpoint->pri = (uint16_t)pri;
- OCResourcePayloadAddNewEndpoint(resource, endpoint);
- endpoint = NULL;
- }
- else
- {
- if (OC_STACK_ADAPTER_NOT_ENABLED == parseResult)
- {
- OIC_LOG(ERROR, TAG, "Ignore unrecognized endpoint info");
- }
- // destroy endpoint
- OCDiscoveryEndpointDestroy(endpoint);
- endpoint = NULL;
- }
-
- err = cbor_value_advance(&epMap);
- VERIFY_CBOR_SUCCESS(TAG, err, "to advance endpoint map");
- }
-
- err = cbor_value_leave_container(&epsMap, &epMap);
- VERIFY_CBOR_SUCCESS(TAG, err, "to leave eps map");
- }
-
err = cbor_value_advance(&resourceMap);
VERIFY_CBOR_SUCCESS(TAG, err, "to advance resource map");
return OC_STACK_OK;
exit:
+ OCDiscoveryResourceDestroy(resource);
+ OCDiscoveryPayloadDestroy(rootPayload);
+ return ret;
+}
+
+static OCStackResult OCParseDiscoveryPayloadVndOcfCbor(OCPayload **outPayload, CborValue *rootValue)
+{
+ OCStackResult ret = OC_STACK_INVALID_PARAM;
+ OCResourcePayload *resource = NULL;
+ OCDiscoveryPayload *rootPayload = NULL;
+ OCEndpointPayload *endpoint = NULL;
+ size_t len = 0;
+ CborError err = CborNoError;
+ *outPayload = NULL;
+
+ VERIFY_PARAM_NON_NULL(TAG, outPayload, "Invalid Parameter outPayload");
+ VERIFY_PARAM_NON_NULL(TAG, rootValue, "Invalid Parameter rootValue");
+ if (cbor_value_is_array(rootValue))
+ {
+ // Root value is already inside the main root array
+
+ // Enter the main root array and start iterating through the array processing
+ // each resource which shows up as a map.
+ CborValue resourceMap;
+ err = cbor_value_enter_container(rootValue, &resourceMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to enter root array");
+
+ while (cbor_value_is_map(&resourceMap))
+ {
+ int bitmap;
+
+ resource = (OCResourcePayload *)OICCalloc(1, sizeof(OCResourcePayload));
+ VERIFY_PARAM_NON_NULL(TAG, resource, "Failed allocating resource payload");
+
+ // Uri
+ CborValue curVal;
+ err = cbor_value_map_find_value(&resourceMap, OC_RSRVD_HREF, &curVal);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find href tag");
+ err = cbor_value_dup_text_string(&curVal, &(resource->uri), &len, NULL);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find href value");
+
+ // Rel - Not a mandatory field
+ err = cbor_value_map_find_value(&resourceMap, OC_RSRVD_REL, &curVal);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find rel tag");
+ if (cbor_value_is_valid(&curVal))
+ {
+ err = cbor_value_dup_text_string(&curVal, &(resource->rel), &len, NULL);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find rel value");
+ }
+
+ // Anchor - Not a mandatory field
+ err = cbor_value_map_find_value(&resourceMap, OC_RSRVD_URI, &curVal);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find anchor tag");
+ if (cbor_value_is_text_string(&curVal))
+ {
+ err = cbor_value_dup_text_string(&curVal, &(resource->anchor), &len, NULL);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find anchor value");
+ }
+
+ // Resource Types
+ err = OCParseStringLL(&resourceMap, OC_RSRVD_RESOURCE_TYPE, &resource->types);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find resource type tag/value");
+
+ // Interface Types
+ err = OCParseStringLL(&resourceMap, OC_RSRVD_INTERFACE, &resource->interfaces);
+ if (CborNoError != err)
+ {
+ if (!OCResourcePayloadAddStringLL(&resource->interfaces, OC_RSRVD_INTERFACE_LL))
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add string to StringLL");
+ goto exit;
+ }
+ }
+
+ // Policy
+ CborValue policyMap;
+ err = cbor_value_map_find_value(&resourceMap, OC_RSRVD_POLICY, &policyMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find policy tag");
+
+ // Bitmap
+ err = cbor_value_map_find_value(&policyMap, OC_RSRVD_BITMAP, &curVal);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find bitmap tag");
+ err = cbor_value_get_int(&curVal, &bitmap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find bitmap value");
+ resource->bitmap = (uint8_t)bitmap;
+
+ // Endpoints
+ CborValue epsMap;
+ err = cbor_value_map_find_value(&resourceMap, OC_RSRVD_ENDPOINTS, &epsMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find eps tag");
+
+ if (cbor_value_is_array(&epsMap))
+ {
+ CborValue epMap;
+ err = cbor_value_enter_container(&epsMap, &epMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to enter endpoint map");
+
+ while (cbor_value_is_map(&epMap))
+ {
+ endpoint = NULL;
+ int pri = 0;
+ char *endpointStr = NULL;
+ endpoint = (OCEndpointPayload *)OICCalloc(1, sizeof(OCEndpointPayload));
+ VERIFY_PARAM_NON_NULL(TAG, endpoint, "Failed allocating endpoint payload");
+
+ // ep
+ err = cbor_value_map_find_value(&epMap, OC_RSRVD_ENDPOINT, &curVal);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find endpoint tag");
+ err = cbor_value_dup_text_string(&curVal, &endpointStr, &len, NULL);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find endpoint value");
+
+ OCStackResult parseResult = OCParseEndpointString(endpointStr, endpoint);
+ OICFree(endpointStr);
+
+ if (OC_STACK_OK == parseResult)
+ {
+ // pri
+ err = cbor_value_map_find_value(&epMap, OC_RSRVD_PRIORITY, &curVal);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find priority tag");
+ err = cbor_value_get_int(&curVal, &pri);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to find priority value");
+ endpoint->pri = (uint16_t)pri;
+ OCResourcePayloadAddNewEndpoint(resource, endpoint);
+ endpoint = NULL;
+ }
+ else
+ {
+ if (OC_STACK_ADAPTER_NOT_ENABLED == parseResult)
+ {
+ OIC_LOG(ERROR, TAG, "Ignore unrecognized endpoint info");
+ }
+ // destroy endpoint
+ OCDiscoveryEndpointDestroy(endpoint);
+ endpoint = NULL;
+ }
+
+ err = cbor_value_advance(&epMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to advance endpoint map");
+ }
+
+ err = cbor_value_leave_container(&epsMap, &epMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to leave eps map");
+ }
+
+ err = cbor_value_advance(&resourceMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to advance resource map");
+
+ // Parse di from anchor
+ if (!resource->anchor || strncmp(resource->anchor, "ocf://", 6))
+ {
+ OIC_LOG_V(ERROR, TAG, "Ignore unrecognized anchor %s", resource->anchor);
+ OCDiscoveryResourceDestroy(resource);
+ }
+ else
+ {
+ char *di = OICStrdup(resource->anchor + 6);
+ char *slash = strchr(di, '/');
+ if (slash)
+ {
+ *slash = '\0';
+ }
+ OCDiscoveryPayload **temp = &rootPayload;
+ while (*temp)
+ {
+ if (!strcmp((*temp)->sid, di))
+ {
+ OCDiscoveryPayloadAddNewResource(*temp, resource);
+ OICFree(di);
+ break;
+ }
+ temp = &(*temp)->next;
+ }
+ if (!*temp)
+ {
+ *temp = OCDiscoveryPayloadCreate();
+ VERIFY_PARAM_NON_NULL(TAG, *temp, "Failed error initializing discovery payload");
+ (*temp)->sid = di;
+ OCDiscoveryPayloadAddNewResource(*temp, resource);
+ }
+ }
+ }
+
+ err = cbor_value_leave_container(rootValue, &resourceMap);
+ VERIFY_CBOR_SUCCESS(TAG, err, "to leave resource map");
+ }
+ else
+ {
+ OIC_LOG(ERROR, TAG, "Malformed packet ");
+ goto exit;
+ }
+
+ *outPayload = (OCPayload *)rootPayload;
+ OIC_LOG_PAYLOAD(DEBUG, *outPayload);
+
+ return OC_STACK_OK;
+
+exit:
OCDiscoveryEndpointDestroy(endpoint);
OCDiscoveryResourceDestroy(resource);
OCDiscoveryPayloadDestroy(rootPayload);
return ret;
}
+static OCStackResult OCParseDiscoveryPayload(OCPayload **outPayload, OCPayloadFormat format,
+ CborValue *rootValue)
+{
+ if (OC_FORMAT_VND_OCF_CBOR == format)
+ {
+ return OCParseDiscoveryPayloadVndOcfCbor(outPayload, rootValue);
+ }
+ else
+ {
+ return OCParseDiscoveryPayloadCbor(outPayload, rootValue);
+ }
+}
+
static OCRepPayloadPropType DecodeCborType(CborType type)
{
switch (type)
(OCResourceHandle)resource,
request->query,
type,
+ request->payloadFormat,
request->payload,
request->payloadSize,
request->numRcvdVendorSpecificHeaderOptions,
uint8_t numRcvdVendorSpecificHeaderOptions, uint32_t observationOption,
OCQualityOfService qos, char * query,
OCHeaderOption * rcvdVendorSpecificHeaderOptions,
- uint8_t * payload, CAToken_t requestToken, uint8_t tokenLength,
- char * resourceUrl, size_t reqTotalSize, OCPayloadFormat acceptFormat,
+ OCPayloadFormat payloadFormat, uint8_t * payload, CAToken_t requestToken,
+ uint8_t tokenLength, char * resourceUrl, size_t reqTotalSize, OCPayloadFormat acceptFormat,
uint16_t acceptVersion, const OCDevAddr *devAddr)
{
if (!request)
// last character
memcpy(serverRequest->payload, payload, reqTotalSize);
serverRequest->payloadSize = reqTotalSize;
+ serverRequest->payloadFormat = payloadFormat;
}
serverRequest->requestComplete = 0;
OCResourceHandle resource,
char * queryBuf,
OCPayloadType payloadType,
+ OCPayloadFormat payloadFormat,
uint8_t * payload,
size_t payloadSize,
uint8_t numVendorOptions,
if(payload && payloadSize)
{
- if(OCParsePayload(&entityHandlerRequest->payload, payloadType,
+ if(OCParsePayload(&entityHandlerRequest->payload, payloadFormat, payloadType,
payload, payloadSize) != OC_STACK_OK)
{
return OC_STACK_ERROR;
// No preference set by the client, so default to CBOR then
case OC_FORMAT_CBOR:
case OC_FORMAT_VND_OCF_CBOR:
- if((result = OCConvertPayload(ehResponse->payload, &responseInfo.info.payload,
- &responseInfo.info.payloadSize))
+ if((result = OCConvertPayload(ehResponse->payload, serverRequest->acceptFormat,
+ &responseInfo.info.payload, &responseInfo.info.payloadSize))
!= OC_STACK_OK)
{
OIC_LOG(ERROR, TAG, "Error converting payload");
OC_REST_NOMETHOD,
&observer->devAddr,
(OCResourceHandle)NULL,
- NULL, PAYLOAD_TYPE_REPRESENTATION,
+ NULL,
+ PAYLOAD_TYPE_REPRESENTATION, OC_FORMAT_CBOR,
NULL, 0, 0, NULL,
OC_OBSERVE_DEREGISTER,
observer->observeId,
OC_REST_NOMETHOD,
&observer->devAddr,
(OCResourceHandle)NULL,
- NULL, PAYLOAD_TYPE_REPRESENTATION,
+ NULL,
+ PAYLOAD_TYPE_REPRESENTATION, OC_FORMAT_CBOR,
NULL, 0, 0, NULL,
OC_OBSERVE_DEREGISTER,
observer->observeId,
if (responseInfo->info.payload)
{
result = OCParsePayload(&response->payload,
+ CAToOCPayloadFormat(responseInfo->info.payloadFormat),
PAYLOAD_TYPE_PRESENCE,
responseInfo->info.payload,
responseInfo->info.payloadSize);
if (OCResultToSuccess(response->result) || PAYLOAD_TYPE_REPRESENTATION == type)
{
if (OC_STACK_OK != OCParsePayload(&response->payload,
+ CAToOCPayloadFormat(responseInfo->info.payloadFormat),
type,
responseInfo->info.payload,
responseInfo->info.payloadSize))
protocolRequest->numRcvdVendorSpecificHeaderOptions,
protocolRequest->observationOption, protocolRequest->qos,
protocolRequest->query, protocolRequest->rcvdVendorSpecificHeaderOptions,
- protocolRequest->payload, protocolRequest->requestToken,
- protocolRequest->tokenLength, protocolRequest->resourceUrl,
- protocolRequest->reqTotalSize, protocolRequest->acceptFormat,
- protocolRequest->acceptVersion, &protocolRequest->devAddr);
+ protocolRequest->payloadFormat, protocolRequest->payload,
+ protocolRequest->requestToken, protocolRequest->tokenLength,
+ protocolRequest->resourceUrl, protocolRequest->reqTotalSize,
+ protocolRequest->acceptFormat, protocolRequest->acceptVersion,
+ &protocolRequest->devAddr);
if (OC_STACK_OK != result)
{
OIC_LOG(ERROR, TAG, "Error adding server request");
if ((requestInfo->info.payload) && (0 < requestInfo->info.payloadSize))
{
+ serverRequest.payloadFormat = CAToOCPayloadFormat(requestInfo->info.payloadFormat);
serverRequest.reqTotalSize = requestInfo->info.payloadSize;
serverRequest.payload = (uint8_t *) OICMalloc(requestInfo->info.payloadSize);
if (!serverRequest.payload)
if (payload)
{
- if((result =
- OCConvertPayload(payload, &requestInfo.info.payload, &requestInfo.info.payloadSize))
- != OC_STACK_OK)
- {
- OIC_LOG(ERROR, TAG, "Failed to create CBOR Payload");
- goto exit;
- }
-
uint16_t payloadVersion = OC_SPEC_VERSION_VALUE;
CAPayloadFormat_t payloadFormat = CA_FORMAT_APPLICATION_CBOR;
// From OCF onwards, check version option settings
requestInfo.info.payloadVersion = payloadVersion;
requestInfo.info.payloadFormat = payloadFormat;
+
+ if((result =
+ OCConvertPayload(payload, CAToOCPayloadFormat(requestInfo.info.payloadFormat),
+ &requestInfo.info.payload, &requestInfo.info.payloadSize))
+ != OC_STACK_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to create CBOR Payload");
+ goto exit;
+ }
}
else
{
}
OCPayload *ocPayload = NULL;
- OCParsePayload(&ocPayload, PAYLOAD_TYPE_REPRESENTATION,
+ OCParsePayload(&ocPayload, request->payloadFormat, PAYLOAD_TYPE_REPRESENTATION,
request->payload, request->payloadSize);
OCRepPayload *repPayload = (OCRepPayload *)ocPayload;
resourcePayload->bitmap = (uint8_t)(bitmap & (OC_OBSERVABLE | OC_DISCOVERABLE));
resourcePayload->secure = ((bitmap & OC_SECURE) != 0);
- const char address[] = "SELECT di, address FROM RD_DEVICE_LIST "
+ const char address[] = "SELECT di FROM RD_DEVICE_LIST "
"INNER JOIN RD_DEVICE_LINK_LIST ON RD_DEVICE_LINK_LIST.DEVICE_ID = RD_DEVICE_LIST.ID "
"WHERE RD_DEVICE_LINK_LIST.DEVICE_ID=@deviceId";
int addressSize = (int)sizeof(address);
const uint8_t di_index = 0;
- const uint8_t address_index = 1;
sqlite3_stmt *stmt1 = 0;
VERIFY_SQLITE(sqlite3_prepare_v2(gRDDB, address, addressSize, &stmt1, NULL));
if (SQLITE_ROW == res || SQLITE_DONE == res)
{
const unsigned char *di = sqlite3_column_text(stmt1, di_index);
- const unsigned char *tempAddress = sqlite3_column_text(stmt1, address_index);
- OIC_LOG_V(DEBUG, TAG, " %s %s", di, tempAddress);
- discPayload->baseURI = OICStrdup((char *)tempAddress);
- if (!discPayload->baseURI)
- {
- result = OC_STACK_NO_MEMORY;
- goto exit;
- }
+ OIC_LOG_V(DEBUG, TAG, " %s", di);
discPayload->sid = OICStrdup((char *)di);
if (!discPayload->sid)
{
// Convert OCPayload to CBOR
uint8_t *payload_cbor = NULL;
size_t payload_cbor_size = 0;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*) payload_in, &payload_cbor, &payload_cbor_size));
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*) payload_in, OC_FORMAT_CBOR,
+ &payload_cbor, &payload_cbor_size));
#ifdef CBOR_BIN_STRING_DEBUG
FILE *fp = fopen("binstring.cbor", "wb+");
// Parse CBOR back to OCPayload
OCPayload* payload_out = NULL;
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&payload_out, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&payload_out, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
payload_cbor, payload_cbor_size));
OCByteString quakedata_out = {NULL, 0};
// Convert OCPayload to CBOR
uint8_t *payload_cbor = NULL;
size_t payload_cbor_size = 0;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*) payload_in, &payload_cbor, &payload_cbor_size));
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*) payload_in, OC_FORMAT_CBOR,
+ &payload_cbor, &payload_cbor_size));
#ifdef CBOR_BIN_STRING_DEBUG
FILE *fp = fopen("binstringarr.cbor", "wb+");
if (fp)
// Parse CBOR back to OCPayload
OCPayload* payload_out = NULL;
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&payload_out, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&payload_out, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
payload_cbor, payload_cbor_size));
OCByteString* quakedata_out = NULL;
// Convert OCPayload to CBOR
uint8_t *payload_cbor = NULL;
size_t payload_cbor_size = 0;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*) payload_in, &payload_cbor, &payload_cbor_size));
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*) payload_in, OC_FORMAT_CBOR,
+ &payload_cbor, &payload_cbor_size));
#ifdef CBOR_BIN_STRING_DEBUG
FILE *fp = fopen("binstringhetarr.cbor", "wb+");
if (fp)
// Parse CBOR back to OCPayload
OCPayload* payload_out = NULL;
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&payload_out, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&payload_out, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
payload_cbor, payload_cbor_size));
// Compare values
epsVector = EpsLLToVector(eps);
}
- if (payload->baseURI)
+ m_resources.push_back(std::shared_ptr<OC::OCResource>(
+ new OC::OCResource(cw, currentDevAddr,
+ std::string(res->uri),
+ std::string(payload->sid),
+ res->bitmap,
+ StringLLToVector(res->types),
+ StringLLToVector(res->interfaces),
+ epsVector
+ )));
+
+#ifdef TCP_ADAPTER
+ if (res->tcpPort != 0)
{
- OCDevAddr rdPubAddr = currentDevAddr;
-
- std::string baseURI = std::string(payload->baseURI);
- size_t len = baseURI.length();
- int addressLen = baseURI.find_first_of(":");
- std::string ipaddress = baseURI.substr(0, addressLen);
- int port = atoi(baseURI.substr(addressLen + 1, len).c_str());
- OICStrcpy(rdPubAddr.addr, addressLen + 1, ipaddress.c_str());
- rdPubAddr.port = port;
+ OCDevAddr tcpDevAddr = currentDevAddr;
+ tcpDevAddr.port = res->tcpPort;
+ tcpDevAddr.adapter = OC_ADAPTER_TCP;
m_resources.push_back(std::shared_ptr<OC::OCResource>(
- new OC::OCResource(cw, rdPubAddr,
+ new OC::OCResource(cw, tcpDevAddr,
std::string(res->uri),
std::string(payload->sid),
res->bitmap,
epsVector
)));
}
- else
- {
- m_resources.push_back(std::shared_ptr<OC::OCResource>(
- new OC::OCResource(cw, currentDevAddr,
- std::string(res->uri),
- std::string(payload->sid),
- res->bitmap,
- StringLLToVector(res->types),
- StringLLToVector(res->interfaces),
- epsVector
- )));
-
-#ifdef TCP_ADAPTER
- if (res->tcpPort != 0)
- {
- OCDevAddr tcpDevAddr = currentDevAddr;
- tcpDevAddr.port = res->tcpPort;
- tcpDevAddr.adapter = OC_ADAPTER_TCP;
- m_resources.push_back(std::shared_ptr<OC::OCResource>(
- new OC::OCResource(cw, tcpDevAddr,
- std::string(res->uri),
- std::string(payload->sid),
- res->bitmap,
- StringLLToVector(res->types),
- StringLLToVector(res->interfaces),
- epsVector
- )));
- }
#endif
- }
res = res->next;
}
payload = payload->next;
uint8_t* cborData;
size_t cborSize;
OCPayload* parsedDevice;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)device, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&parsedDevice, PAYLOAD_TYPE_REPRESENTATION, cborData, cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)device, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&parsedDevice, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION, cborData, cborSize));
OICFree(cborData);
OCRepPayload *parsedRep = (OCRepPayload *)parsedDevice;
dt1[0] = OICStrdup("ocf.res.1.1.0");
dt1[1] = OICStrdup("ocf.sh.1.1.0");
OCRepPayloadSetStringArray(device, OC_RSRVD_DATA_MODEL_VERSION, (const char**)dt1, dim1);
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)device, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&parsedDevice, PAYLOAD_TYPE_REPRESENTATION, cborData, cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)device, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&parsedDevice, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION, cborData, cborSize));
OICFree(cborData);
OICFree(dt1[0]);
OICFree(dt1[1]);
uint8_t* cborData;
size_t cborSize;
OCPayload* parsedPlatform = NULL;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)platform, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&parsedPlatform, PAYLOAD_TYPE_REPRESENTATION, cborData, cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)platform, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&parsedPlatform, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION, cborData, cborSize));
OICFree(cborData);
OCRepPayload *platform1 = (OCRepPayload *)parsedPlatform;
uint8_t* cborData;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)presence, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_PRESENCE,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)presence, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_PRESENCE,
cborData, cborSize));
OCPayloadDestroy((OCPayload*)presence);
OICFree(cborData);
uint8_t* cborData;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)cstart, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)cstart, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCPayloadDestroy((OCPayload*)cstart);
OICFree(cborData);
uint8_t *cborData = NULL;
size_t cborSize = 0;
OCPayload *cparsed = NULL;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)cstart, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)cstart, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCPayloadDestroy((OCPayload*)cstart);
OICFree(cborData);
uint8_t* cborData;
size_t cborSize;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)cstart, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)cstart, OC_FORMAT_CBOR, &cborData, &cborSize));
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCPayloadDestroy((OCPayload*)cstart);
OICFree(cborData);
uint8_t* cborData;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)cstart, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)cstart, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCPayloadDestroy((OCPayload *)cstart);
OICFree(cborData);
uint8_t* cborData;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)cstart, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)cstart, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCPayloadDestroy((OCPayload *)cstart);
OICFree(cborData);
uint8_t *cborData;
size_t cborSize;
OCPayload *cparsed;
- OCStackResult result = OCConvertPayload((OCPayload *)cstart, &cborData, &cborSize);
+ OCStackResult result = OCConvertPayload((OCPayload *)cstart, OC_FORMAT_CBOR, &cborData, &cborSize);
EXPECT_EQ(OC_STACK_OK, result);
- result = OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ result = OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize);
EXPECT_EQ(OC_STACK_OK, result);
uint8_t *cborData;
size_t cborSize;
OCPayload *cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)cstart, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)cstart, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCPayloadDestroy((OCPayload *)cstart);
OICFree(cborData);
uint8_t *cborData;
size_t cborSize;
OCPayload *cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)cstart, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload *)cstart, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCPayloadDestroy((OCPayload *)cstart);
OICFree(cborData);
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_DISCOVERY,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_DISCOVERY,
cborData, cborSize));
EXPECT_EQ(1u, OCDiscoveryPayloadGetResourceCount((OCDiscoveryPayload*)cparsed));
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_DISCOVERY,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_DISCOVERY,
cborData, cborSize));
EXPECT_EQ(1u, OCDiscoveryPayloadGetResourceCount((OCDiscoveryPayload*)cparsed));
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_DISCOVERY,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_DISCOVERY,
cborData, cborSize));
EXPECT_EQ(1u, OCDiscoveryPayloadGetResourceCount((OCDiscoveryPayload*)cparsed));
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_DISCOVERY,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_DISCOVERY,
cborData, cborSize));
EXPECT_EQ(1u, OCDiscoveryPayloadGetResourceCount((OCDiscoveryPayload*)cparsed));
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_DISCOVERY,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_DISCOVERY,
cborData, cborSize));
EXPECT_EQ(1u, OCDiscoveryPayloadGetResourceCount((OCDiscoveryPayload*)cparsed));
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_DISCOVERY,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_DISCOVERY,
cborData, cborSize));
EXPECT_EQ(1u, OCDiscoveryPayloadGetResourceCount((OCDiscoveryPayload*)cparsed));
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_DISCOVERY,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_DISCOVERY,
cborData, cborSize));
EXPECT_EQ(1u, OCDiscoveryPayloadGetResourceCount((OCDiscoveryPayload*)cparsed));
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_DISCOVERY,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_DISCOVERY,
cborData, cborSize));
EXPECT_EQ(1u, OCDiscoveryPayloadGetResourceCount((OCDiscoveryPayload*)cparsed));
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCRepPayload* parsedPayload = (OCRepPayload*)cparsed;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCRepPayload* parsedPayload = (OCRepPayload*)cparsed;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCRepPayload* parsedPayload = (OCRepPayload*)cparsed;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCRepPayload* parsedPayload = (OCRepPayload*)cparsed;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCRepPayload* parsedPayload = (OCRepPayload*)cparsed;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCRepPayload* parsedPayload = (OCRepPayload*)cparsed;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCRepPayload* parsedPayload = (OCRepPayload*)cparsed;
size_t cborSize;
OCPayload* cparsed;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)payload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCRepPayload* parsedPayload = (OCRepPayload*)cparsed;
size_t cborSize = 0;
OCPayload *cparsed = NULL;
- EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)repPayload, &cborData, &cborSize));
- EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, PAYLOAD_TYPE_REPRESENTATION,
+ EXPECT_EQ(OC_STACK_OK, OCConvertPayload((OCPayload*)repPayload, OC_FORMAT_CBOR, &cborData, &cborSize));
+ EXPECT_EQ(OC_STACK_OK, OCParsePayload(&cparsed, OC_FORMAT_CBOR, PAYLOAD_TYPE_REPRESENTATION,
cborData, cborSize));
OCRepPayload *parsedPayload = (OCRepPayload *)cparsed;