Imported Upstream version 0.9.1
[platform/upstream/iotivity.git] / resource / csdk / connectivity / common / inc / caremotehandler.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
21 /**
22  * @file
23  *
24  * This file contains common utility function for remote endpoints.
25  */
26
27 #ifndef CA_REMOTE_HANDLER_H_
28 #define CA_REMOTE_HANDLER_H_
29
30 #include "cacommon.h"
31
32 #ifdef __cplusplus
33 extern "C"
34 {
35 #endif
36
37 /**
38  * @brief   Creates a new remote endpoint from the input endpoint
39  * @param   endpoint       [IN]    endpoint information where the data has to be sent
40  * @return  remote endpoint created
41  */
42 CAEndpoint_t *CACloneEndpoint(const CAEndpoint_t *endpoint);
43
44 /**
45  * @brief Allocate CAEndpoint_t instance.
46  * @param   flags        [IN]  Transport flag
47  * @param   adapter      [IN]  Adapter type
48  * @param   address      [IN]  Address
49  * @param   port         [IN]  Port
50  * @return  #CA_STATUS_OK or Appropriate error code
51  */
52 CAEndpoint_t *CACreateEndpointObject(CATransportFlags_t flags, CATransportAdapter_t adapter,
53                                      const char *address, uint16_t port);
54 /**
55  * @brief   Destroy remote endpoint
56  * @param   endpoint       [IN]    endpoint information where the data has to be sent
57  * @return  none
58  */
59 void CAFreeEndpoint(CAEndpoint_t *rep);
60
61 /**
62  * @brief   Creates a new request information
63  * @param   request       [IN]    request information that needs to be duplicated
64  * @return  remote endpoint created
65  */
66 CARequestInfo_t *CACloneRequestInfo(const CARequestInfo_t *request);
67
68 /**
69  * @brief   Destroy the request information
70  * @param   request       [IN]    request information that needs to be destroyed
71  * @return none
72  */
73 void CADestroyRequestInfoInternal(CARequestInfo_t *request);
74
75 /**
76  * @brief   Creates a new response information
77  * @param   response       [IN]    response information that needs to be duplicated
78  * @return  remote endpoint created
79  */
80 CAResponseInfo_t *CACloneResponseInfo(const CAResponseInfo_t *response);
81
82 /**
83  * @brief   Destroy the response information
84  * @param   response       [IN]    response information that needs to be destroyed
85  * @return
86  */
87 void CADestroyResponseInfoInternal(CAResponseInfo_t *response);
88
89 #ifdef __cplusplus
90 } /* extern "C" */
91 #endif
92
93 #endif /* CA_REMOTE_HANDLER_H_ */
94