size_t *size);
static int64_t OCConvertRepPayload(OCRepPayload *payload, uint8_t *outPayload, size_t *size);
static int64_t OCConvertRepMap(CborEncoder *map, const OCRepPayload *payload);
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 OCConvertSecurityPayload(OCSecurityPayload *payload, uint8_t *outPayload,
size_t *size);
static int64_t OCConvertSingleRepPayload(CborEncoder *parent, const OCRepPayload *payload);
static int64_t OCConvertSecurityPayload(OCSecurityPayload *payload, uint8_t *outPayload,
size_t *size);
static int64_t OCConvertSingleRepPayload(CborEncoder *parent, const OCRepPayload *payload);
// reallocate "out" and try again!
uint8_t *out2 = (uint8_t *)OICRealloc(out, curSize);
VERIFY_PARAM_NON_NULL(TAG, out2, "Failed to increase payload size");
// reallocate "out" and try again!
uint8_t *out2 = (uint8_t *)OICRealloc(out, curSize);
VERIFY_PARAM_NON_NULL(TAG, out2, "Failed to increase payload size");
out = out2;
err = OCConvertPayloadHelper(payload, out, &curSize);
while (err == CborErrorOutOfMemory)
{
uint8_t *out2 = (uint8_t *)OICRealloc(out, curSize);
VERIFY_PARAM_NON_NULL(TAG, out2, "Failed to increase payload size");
out = out2;
err = OCConvertPayloadHelper(payload, out, &curSize);
while (err == CborErrorOutOfMemory)
{
uint8_t *out2 = (uint8_t *)OICRealloc(out, curSize);
VERIFY_PARAM_NON_NULL(TAG, out2, "Failed to increase payload size");
return OCConvertDiscoveryPayload((OCDiscoveryPayload*)payload, outPayload, size);
case PAYLOAD_TYPE_REPRESENTATION:
return OCConvertRepPayload((OCRepPayload*)payload, outPayload, size);
return OCConvertDiscoveryPayload((OCDiscoveryPayload*)payload, outPayload, size);
case PAYLOAD_TYPE_REPRESENTATION:
return OCConvertRepPayload((OCRepPayload*)payload, outPayload, size);
case PAYLOAD_TYPE_PRESENCE:
return OCConvertPresencePayload((OCPresencePayload*)payload, outPayload, size);
case PAYLOAD_TYPE_PRESENCE:
return OCConvertPresencePayload((OCPresencePayload*)payload, outPayload, size);
case PAYLOAD_TYPE_SECURITY:
return OCConvertSecurityPayload((OCSecurityPayload*)payload, outPayload, size);
default:
case PAYLOAD_TYPE_SECURITY:
return OCConvertSecurityPayload((OCSecurityPayload*)payload, outPayload, size);
default:
return checkError(err, &encoder, outPayload, size);
}
return checkError(err, &encoder, outPayload, size);
}
exit:
return checkError(err, &encoder, outPayload, size);
}
exit:
return checkError(err, &encoder, outPayload, size);
}
static int64_t AddTextStringToMap(CborEncoder* map, const char* key, size_t keylen,
const char* value)
static int64_t AddTextStringToMap(CborEncoder* map, const char* key, size_t keylen,
const char* value)