/** The REST method retrieved from received request PDU.*/
OCMethod method;
+ /** Accept format retrieved from the received request PDU. */
+ OCPayloadFormat acceptFormat;
+
/** resourceUrl will be filled in occoap using the path options in received request PDU.*/
char resourceUrl[MAX_URI_LENGTH];
OCQualityOfService qos;
/** Observe option field.*/
-
uint32_t observationOption;
/** Observe Result field.*/
/** Remote endpoint address **/
OCDevAddr devAddr;
+ /** The ID of server request*/
+ uint32_t requestId;
+
/** Token for the request.*/
CAToken_t requestToken;
uint8_t numRcvdVendorSpecificHeaderOptions;
/** An Array of received vendor specific header options.*/
- OCHeaderOption rcvdVendorSpecificHeaderOptions[MAX_HEADER_OPTIONS];
+ OCHeaderOption *rcvdVendorSpecificHeaderOptions;
/** Request to complete.*/
uint8_t requestComplete;
/** payload is retrieved from the payload of the received request PDU.*/
uint8_t payload[1];
+ // WARNING: Do NOT add attributes after payload as they get overwritten
+ // when payload content gets copied over!
+
} OCServerRequest;
/**
* @return
* OCServerRequest*
*/
-OCServerRequest * GetServerRequestUsingHandle (const OCServerRequest * handle);
+OCServerRequest * GetServerRequestUsingHandle (const OCRequestHandle handle);
/**
* Get a server response from the server response list using the specified handle
* @return
* OCServerResponse*
*/
-OCServerResponse * GetServerResponseUsingHandle (const OCServerRequest * handle);
+OCServerResponse * GetServerResponseUsingHandle (const OCRequestHandle handle);
/**
* Add a server request to the server request list
* @param tokenLength Request token length.
* @param resourceUrl URL of resource.
* @param reqTotalSize Total size of the request.
+ * @param acceptFormat The format requested for the payload encoding.
* @param devAddr Device Address.
*
* @return
uint8_t * payload, CAToken_t requestToken,
uint8_t tokenLength,
char * resourceUrl, size_t reqTotalSize,
+ OCPayloadFormat acceptFormat,
const OCDevAddr *devAddr);
/**
* OCStackResult
*/
OCStackResult FormOCEntityHandlerRequest(
- OCEntityHandlerRequest *entityHandlerRequest,
- OCRequestHandle request,
- OCMethod method,
- OCDevAddr *endpoint,
- OCResourceHandle resource,
- char *queryBuf,
- uint8_t *payload,
- size_t payloadSize,
- uint8_t numVendorOptions,
- OCHeaderOption *vendorOptions,
- OCObserveAction observeAction,
- OCObservationId observeID);
+ OCEntityHandlerRequest * entityHandlerRequest,
+ OCRequestHandle request,
+ OCMethod method,
+ OCDevAddr *endpoint,
+ OCResourceHandle resource,
+ char * queryBuf,
+ OCPayloadType payloadType,
+ uint8_t * payload,
+ size_t payloadSize,
+ uint8_t numVendorOptions,
+ OCHeaderOption * vendorOptions,
+ OCObserveAction observeAction,
+ OCObservationId observeID,
+ uint16_t messageID);
/**
* Find a server request in the server request list and delete