e2ec963dc2f02fddedfd3b64d7eb188ea6379b59
[platform/upstream/iotivity.git] / resource / csdk / connectivity / inc / caprotocolmessage.h
1 /******************************************************************
2  *
3  * Copyright 2014 Samsung Electronics All Rights Reserved.
4  *
5  *
6  *
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  ******************************************************************/
20 #ifndef __CA_PROTOCOL_MESSAGE_H_
21 #define __CA_PROTOCOL_MESSAGE_H_
22
23 #include "cacommon.h"
24 #include "config.h"
25 #include "coap.h"
26
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31
32 typedef uint32_t code_t;
33
34 /**
35  * function for generating
36  */
37 coap_pdu_t* CAGeneratePdu(const char* uri, const uint32_t code, const CAInfo_t info);
38
39 /**
40  * function for generating
41  */
42 uint32_t CAGetRequestInfoFromPdu(const coap_pdu_t *pdu, CARequestInfo_t* outReqInfo, char* outUri);
43
44 uint32_t CAGetResponseInfoFromPdu(const coap_pdu_t *pdu, CAResponseInfo_t* outResInfo,
45         char* outUri);
46
47 coap_pdu_t* CACreatePDUforRequest(const code_t code, coap_list_t *options);
48
49 coap_pdu_t* CACreatePDUforRequestWithPayload(const code_t code, coap_list_t *optlist,
50         const char* payload);
51
52 /**
53  * funtion for parsing
54  */
55 void CAParseURI(const char* uriInfo, coap_list_t **options);
56
57 /**
58  * funtion for parsing
59  */
60 void CAParseHeadOption(const uint32_t code, const CAInfo_t info, coap_list_t **optlist);
61
62 coap_list_t* CACreateNewOptionNode(const uint16_t key, const uint32_t length, const uint8_t *data);
63
64 int32_t CAOrderOpts(void *a, void *b);
65
66 uint32_t getOptionCount(coap_opt_iterator_t opt_iter);
67
68 /**
69  * funtion for get PDU information
70  */
71 void CAGetRequestPDUInfo(const coap_pdu_t *pdu, uint32_t* outCode, CAInfo_t* outInfo, char* outUri);
72
73 /**
74  * funtion for parsing
75  */
76 coap_pdu_t* CAParsePDU(const char* data, uint32_t* outCode);
77
78 /**
79  * function for token
80  */
81 CAResult_t CAGenerateTokenInternal(CAToken_t* token);
82
83 void CADestroyTokenInternal(CAToken_t token);
84
85 /**
86  * Deinitialize
87  */
88 void CADeinitialize(CAInfo_t* info);
89
90 #ifdef __cplusplus
91 } /* extern "C" */
92 #endif
93
94 #endif //#ifndef __CA_PROTOCOL_MESSAGE_H_