X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fstack%2Finclude%2Focpayload.h;h=204af4fefd89e3dea8ffc9fd9c1941c04da5644e;hb=edcfc3d2329da7b914771c0dcff5f42c9b74fd93;hp=d5c727e8399730eab37ea9743434d081188cfbdd;hpb=945944cb3ff5efaccd03e8efa23199e58bd59ded;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/stack/include/ocpayload.h b/resource/csdk/stack/include/ocpayload.h index d5c727e..204af4f 100644 --- a/resource/csdk/stack/include/ocpayload.h +++ b/resource/csdk/stack/include/ocpayload.h @@ -27,10 +27,15 @@ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS #endif + #include #include #include "octypes.h" +#if defined(__WITH_TLS__) || defined(__WITH_DTLS__) +#include "securevirtualresourcetypes.h" +#endif + #ifdef __cplusplus extern "C" { @@ -60,34 +65,36 @@ extern "C" typedef struct OCResource OCResource; -OC_EXPORT void OCPayloadDestroy(OCPayload* payload); +void OCPayloadDestroy(OCPayload* payload); // Representation Payload -OC_EXPORT OCRepPayload* OCRepPayloadCreate(); +OCRepPayload* OCRepPayloadCreate(); -OC_EXPORT size_t calcDimTotal(const size_t dimensions[MAX_REP_ARRAY_DEPTH]); +size_t calcDimTotal(const size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT OCRepPayload* OCRepPayloadClone(const OCRepPayload* payload); +OCRepPayload* OCRepPayloadClone(const OCRepPayload* payload); -OC_EXPORT void OCRepPayloadAppend(OCRepPayload* parent, OCRepPayload* child); +OCRepPayload* OCRepPayloadBatchClone(const OCRepPayload* repPayload); -OC_EXPORT bool OCRepPayloadSetUri(OCRepPayload* payload, const char* uri); +void OCRepPayloadAppend(OCRepPayload* parent, OCRepPayload* child); -OC_EXPORT bool OCRepPayloadAddResourceType(OCRepPayload* payload, const char* resourceType); -OC_EXPORT bool OCRepPayloadAddInterface(OCRepPayload* payload, const char* iface); -OC_EXPORT bool OCRepPayloadAddModelVersion(OCRepPayload* payload, const char* dmv); +bool OCRepPayloadSetUri(OCRepPayload* payload, const char* uri); -OC_EXPORT bool OCRepPayloadAddResourceTypeAsOwner(OCRepPayload* payload, char* resourceType); -OC_EXPORT bool OCRepPayloadAddInterfaceAsOwner(OCRepPayload* payload, char* iface); +bool OCRepPayloadAddResourceType(OCRepPayload* payload, const char* resourceType); +bool OCRepPayloadAddInterface(OCRepPayload* payload, const char* iface); +bool OCRepPayloadAddModelVersion(OCRepPayload* payload, const char* dmv); -OC_EXPORT bool OCRepPayloadIsNull(const OCRepPayload* payload, const char* name); -OC_EXPORT bool OCRepPayloadSetNull(OCRepPayload* payload, const char* name); +bool OCRepPayloadAddResourceTypeAsOwner(OCRepPayload* payload, char* resourceType); +bool OCRepPayloadAddInterfaceAsOwner(OCRepPayload* payload, char* iface); -OC_EXPORT bool OCRepPayloadSetPropInt(OCRepPayload* payload, const char* name, int64_t value); -OC_EXPORT bool OCRepPayloadGetPropInt(const OCRepPayload* payload, const char* name, int64_t* value); +bool OCRepPayloadIsNull(const OCRepPayload* payload, const char* name); +bool OCRepPayloadSetNull(OCRepPayload* payload, const char* name); -OC_EXPORT bool OCRepPayloadSetPropDouble(OCRepPayload* payload, const char* name, double value); -OC_EXPORT bool OCRepPayloadGetPropDouble(const OCRepPayload* payload, const char* name, double* value); +bool OCRepPayloadSetPropInt(OCRepPayload* payload, const char* name, int64_t value); +bool OCRepPayloadGetPropInt(const OCRepPayload* payload, const char* name, int64_t* value); + +bool OCRepPayloadSetPropDouble(OCRepPayload* payload, const char* name, double value); +bool OCRepPayloadGetPropDouble(const OCRepPayload* payload, const char* name, double* value); /** * This function allocates memory for the byte string and sets it in the payload. @@ -98,7 +105,7 @@ OC_EXPORT bool OCRepPayloadGetPropDouble(const OCRepPayload* payload, const char * * @return true on success, false upon failure. */ -OC_EXPORT bool OCRepPayloadSetPropByteString(OCRepPayload* payload, const char* name, OCByteString value); +bool OCRepPayloadSetPropByteString(OCRepPayload* payload, const char* name, OCByteString value); /** * This function sets the byte string in the payload. @@ -109,7 +116,7 @@ OC_EXPORT bool OCRepPayloadSetPropByteString(OCRepPayload* payload, const char* * * @return true on success, false upon failure. */ -OC_EXPORT bool OCRepPayloadSetPropByteStringAsOwner(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetPropByteStringAsOwner(OCRepPayload* payload, const char* name, OCByteString* value); /** @@ -123,19 +130,25 @@ OC_EXPORT bool OCRepPayloadSetPropByteStringAsOwner(OCRepPayload* payload, const * * @return true on success, false upon failure. */ -OC_EXPORT bool OCRepPayloadGetPropByteString(const OCRepPayload* payload, const char* name, +bool OCRepPayloadGetPropByteString(const OCRepPayload* payload, const char* name, OCByteString* value); -OC_EXPORT bool OCRepPayloadSetPropString(OCRepPayload* payload, const char* name, const char* value); -OC_EXPORT bool OCRepPayloadSetPropStringAsOwner(OCRepPayload* payload, const char* name, char* value); -OC_EXPORT bool OCRepPayloadGetPropString(const OCRepPayload* payload, const char* name, char** value); +bool OCRepPayloadSetPropString(OCRepPayload* payload, const char* name, const char* value); +bool OCRepPayloadSetPropStringAsOwner(OCRepPayload* payload, const char* name, char* value); +bool OCRepPayloadGetPropString(const OCRepPayload* payload, const char* name, char** value); + +bool OCRepPayloadSetPropBool(OCRepPayload* payload, const char* name, bool value); +bool OCRepPayloadGetPropBool(const OCRepPayload* payload, const char* name, bool* value); -OC_EXPORT bool OCRepPayloadSetPropBool(OCRepPayload* payload, const char* name, bool value); -OC_EXPORT bool OCRepPayloadGetPropBool(const OCRepPayload* payload, const char* name, bool* value); +bool OCRepPayloadSetPropObject(OCRepPayload* payload, const char* name, const OCRepPayload* value); +bool OCRepPayloadSetPropObjectAsOwner(OCRepPayload* payload, const char* name, OCRepPayload* value); +bool OCRepPayloadGetPropObject(const OCRepPayload* payload, const char* name, OCRepPayload** value); -OC_EXPORT bool OCRepPayloadSetPropObject(OCRepPayload* payload, const char* name, const OCRepPayload* value); -OC_EXPORT bool OCRepPayloadSetPropObjectAsOwner(OCRepPayload* payload, const char* name, OCRepPayload* value); -OC_EXPORT bool OCRepPayloadGetPropObject(const OCRepPayload* payload, const char* name, OCRepPayload** value); +#ifdef __WITH_TLS__ +bool OCRepPayloadSetPropPubDataType(OCRepPayload *payload, const char *name, const OicSecKey_t *value); +bool OCRepPayloadSetPropPubDataTypeAsOwner(OCRepPayload *payload, const char *name, const OicSecKey_t *value); +bool OCRepPayloadGetPropPubDataType(const OCRepPayload *payload, const char *name, OicSecKey_t *value); +#endif /** * This function allocates memory for the byte string array and sets it in the payload. @@ -147,7 +160,7 @@ OC_EXPORT bool OCRepPayloadGetPropObject(const OCRepPayload* payload, const char * * @return true on success, false upon failure. */ -OC_EXPORT bool OCRepPayloadSetByteStringArrayAsOwner(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetByteStringArrayAsOwner(OCRepPayload* payload, const char* name, OCByteString* array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); /** @@ -160,7 +173,7 @@ OC_EXPORT bool OCRepPayloadSetByteStringArrayAsOwner(OCRepPayload* payload, cons * * @return true on success, false upon failure. */ -OC_EXPORT bool OCRepPayloadSetByteStringArray(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetByteStringArray(OCRepPayload* payload, const char* name, const OCByteString* array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); /** @@ -176,87 +189,76 @@ OC_EXPORT bool OCRepPayloadSetByteStringArray(OCRepPayload* payload, const char* * * @return true on success, false upon failure. */ -OC_EXPORT bool OCRepPayloadGetByteStringArray(const OCRepPayload* payload, const char* name, +bool OCRepPayloadGetByteStringArray(const OCRepPayload* payload, const char* name, OCByteString** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetIntArrayAsOwner(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetIntArrayAsOwner(OCRepPayload* payload, const char* name, int64_t* array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetIntArray(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetIntArray(OCRepPayload* payload, const char* name, const int64_t* array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadGetIntArray(const OCRepPayload* payload, const char* name, +bool OCRepPayloadGetIntArray(const OCRepPayload* payload, const char* name, int64_t** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetDoubleArrayAsOwner(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetDoubleArrayAsOwner(OCRepPayload* payload, const char* name, double* array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetDoubleArray(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetDoubleArray(OCRepPayload* payload, const char* name, const double* array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadGetDoubleArray(const OCRepPayload* payload, const char* name, +bool OCRepPayloadGetDoubleArray(const OCRepPayload* payload, const char* name, double** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetStringArrayAsOwner(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetStringArrayAsOwner(OCRepPayload* payload, const char* name, char** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetStringArray(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetStringArray(OCRepPayload* payload, const char* name, const char** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadGetStringArray(const OCRepPayload* payload, const char* name, +bool OCRepPayloadGetStringArray(const OCRepPayload* payload, const char* name, char*** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetBoolArrayAsOwner(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetBoolArrayAsOwner(OCRepPayload* payload, const char* name, bool* array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetBoolArray(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetBoolArray(OCRepPayload* payload, const char* name, const bool* array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadGetBoolArray(const OCRepPayload* payload, const char* name, +bool OCRepPayloadGetBoolArray(const OCRepPayload* payload, const char* name, bool** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetPropObjectArrayAsOwner(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetPropObjectArrayAsOwner(OCRepPayload* payload, const char* name, OCRepPayload** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadSetPropObjectArray(OCRepPayload* payload, const char* name, +bool OCRepPayloadSetPropObjectArray(OCRepPayload* payload, const char* name, const OCRepPayload** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT bool OCRepPayloadGetPropObjectArray(const OCRepPayload* payload, const char* name, +bool OCRepPayloadGetPropObjectArray(const OCRepPayload* payload, const char* name, OCRepPayload*** array, size_t dimensions[MAX_REP_ARRAY_DEPTH]); -OC_EXPORT void OCRepPayloadDestroy(OCRepPayload* payload); +void OCRepPayloadDestroy(OCRepPayload* payload); // Discovery Payload -OC_EXPORT OCDiscoveryPayload* OCDiscoveryPayloadCreate(); +OCDiscoveryPayload* OCDiscoveryPayloadCreate(); -OC_EXPORT OCSecurityPayload* OCSecurityPayloadCreate(const uint8_t* securityData, size_t size); -OC_EXPORT void OCSecurityPayloadDestroy(OCSecurityPayload* payload); +OCSecurityPayload* OCSecurityPayloadCreate(const uint8_t* securityData, size_t size); +void OCSecurityPayloadDestroy(OCSecurityPayload* payload); #ifndef TCP_ADAPTER -OC_EXPORT void OCDiscoveryPayloadAddResource(OCDiscoveryPayload* payload, const OCResource* res, - uint16_t securePort); +void OCDiscoveryPayloadAddResource(OCDiscoveryPayload* payload, const OCResource* res, + uint16_t securePort); #else -OC_EXPORT void OCDiscoveryPayloadAddResource(OCDiscoveryPayload* payload, const OCResource* res, - uint16_t securePort, uint16_t tcpPort); +void OCDiscoveryPayloadAddResource(OCDiscoveryPayload* payload, const OCResource* res, + uint16_t securePort, uint16_t tcpPort); #endif -OC_EXPORT void OCDiscoveryPayloadAddNewResource(OCDiscoveryPayload* payload, OCResourcePayload* res); -OC_EXPORT bool OCResourcePayloadAddStringLL(OCStringLL **payload, const char* type); +void OCDiscoveryPayloadAddNewResource(OCDiscoveryPayload* payload, OCResourcePayload* res); +bool OCResourcePayloadAddStringLL(OCStringLL **payload, const char* type); -OC_EXPORT size_t OCDiscoveryPayloadGetResourceCount(OCDiscoveryPayload* payload); -OC_EXPORT OCResourcePayload* OCDiscoveryPayloadGetResource(OCDiscoveryPayload* payload, size_t index); +size_t OCDiscoveryPayloadGetResourceCount(OCDiscoveryPayload* payload); +OCResourcePayload* OCDiscoveryPayloadGetResource(OCDiscoveryPayload* payload, size_t index); -OC_EXPORT void OCDiscoveryResourceDestroy(OCResourcePayload* payload); -OC_EXPORT void OCDiscoveryPayloadDestroy(OCDiscoveryPayload* payload); - -// Device Payload -OC_EXPORT OCDevicePayload* OCDevicePayloadCreate(const char* sid, const char* dname, - const OCStringLL *types, const char* specVer, const char* dmVer); -OC_EXPORT void OCDevicePayloadDestroy(OCDevicePayload* payload); - -// Platform Payload -OC_EXPORT OCPlatformPayload* OCPlatformPayloadCreate(const OCPlatformInfo* platformInfo); -OC_EXPORT OCPlatformPayload* OCPlatformPayloadCreateAsOwner(OCPlatformInfo* platformInfo); -OC_EXPORT void OCPlatformInfoDestroy(OCPlatformInfo *info); -OC_EXPORT void OCPlatformPayloadDestroy(OCPlatformPayload* payload); +void OCDiscoveryResourceDestroy(OCResourcePayload* payload); +void OCDiscoveryPayloadDestroy(OCDiscoveryPayload* payload); // Presence Payload -OC_EXPORT OCPresencePayload* OCPresencePayloadCreate(uint32_t seqNum, uint32_t maxAge, +OCPresencePayload* OCPresencePayloadCreate(uint32_t seqNum, uint32_t maxAge, OCPresenceTrigger trigger, const char* resourceType); -OC_EXPORT void OCPresencePayloadDestroy(OCPresencePayload* payload); +void OCPresencePayloadDestroy(OCPresencePayload* payload); // Helper API -OC_EXPORT OCStringLL* CloneOCStringLL (OCStringLL* ll); -OC_EXPORT void OCFreeOCStringLL(OCStringLL* ll); +OCStringLL* CloneOCStringLL (OCStringLL* ll); +void OCFreeOCStringLL(OCStringLL* ll); /** * This function creates a list from a string (with separated contents if several) @@ -264,15 +266,23 @@ OC_EXPORT void OCFreeOCStringLL(OCStringLL* ll); * @return newly allocated linked list * @note separator is ',' (according to rfc4180, ';' is not valid) **/ -OC_EXPORT OCStringLL* OCCreateOCStringLL(const char* text); +OCStringLL* OCCreateOCStringLL(const char* text); /** * This function creates a string from a list (with separated contents if several) * @param ll Pointer to list - * @return newly allocated string + * @return newly allocated string. Caller takes ownership and must later free this memory with OICFree. * @note separator is ',' (according to rfc4180) **/ -OC_EXPORT char* OCCreateString(const OCStringLL* ll); +char* OCCreateString(const OCStringLL* ll); + +/** + * This function copies contents (and allocates if necessary) + * @param dest existing bytestring (or null to allocate here) + * @param source existing bytestring + * @return true of success false on any errors + **/ +bool OCByteStringCopy(OCByteString *dest, const OCByteString *source); #ifdef __cplusplus }