1 /******************************************************************
3 * Copyright 2014 Samsung Electronics All Rights Reserved.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 ******************************************************************/
20 #ifndef __CA_PROTOCOL_MESSAGE_H_
21 #define __CA_PROTOCOL_MESSAGE_H_
34 uint8_t msgtype = COAP_MESSAGE_CON; /* usually, requests are sent confirmable */
37 { .num = 0, .m = 0, .szx = 6};
39 typedef uint32_t code_t;
42 * function for generate
44 coap_pdu_t* CAGeneratePdu(const char* uri, const uint32_t code, const CAInfo_t info);
46 * function for parsing
48 uint32_t CAGetRequestInfoFromPdu(const coap_pdu_t *pdu, CARequestInfo_t* outReqInfo);
50 uint32_t CAGetResponseInfoFromPdu(const coap_pdu_t *pdu, CAResponseInfo_t* outResInfo);
52 coap_pdu_t* CACreatePDUforRequest(const code_t code, coap_list_t *options);
54 coap_pdu_t* CACreatePDUforRequestWithPayload(const code_t code, coap_list_t *optlist,
57 void CAParseURI(const char* uriInfo, coap_list_t **options);
59 void CAParseHeadOption(const uint32_t code, const CAInfo_t info, coap_list_t **optlist);
61 coap_list_t* CACreateNewOptionNode(const uint16_t key, const uint32_t length, const uint8_t *data);
63 int32_t CAOrderOpts(void *a, void *b);
65 void CAGetRequestPDUInfo(const coap_pdu_t *pdu, uint32_t* outCode, CAInfo_t* outInfo);
67 coap_pdu_t* CAParsePDU(const char* data, uint32_t* outCode);
72 CAResult_t CAGenerateTokenInternal(CAToken_t* token);
74 void CADestroyTokenInternal(CAToken_t token);
80 #endif //#ifndef __CA_PROTOCOL_MESSAGE_H_