[IOT-1683] Add missing defines for standard interfaces.
[platform/upstream/iotivity.git] / resource / csdk / stack / include / internal / oickeepalive.h
1 /* ****************************************************************
2  *
3  * Copyright 2015 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  * This file contains the APIs for KeepAlive Mechanism.
24  * In order to ensure that the connection between an OIC Devices,
25  * when using CoAP over TCP, OIC Device should send application layer
26  * KeepAlive messages.
27  */
28 #ifndef KEEP_ALIVE_H_
29 #define KEEP_ALIVE_H_
30
31 #include "octypes.h"
32 #include "ocserverrequest.h"
33 #include "ocresource.h"
34
35 #ifdef __cplusplus
36 extern "C"
37 {
38 #endif
39
40 /**
41  * Name of resource type.
42  */
43 #define KEEPALIVE_RESOURCE_TYPE_NAME "oic.wk.ping"
44
45 /**
46  * Name of resource interface.
47  */
48 #define KEEPALIVE_RESOURCE_INTF_NAME OC_RSRVD_INTERFACE_READ_WRITE
49
50 /**
51  * URI of the resource.
52  */
53 #define KEEPALIVE_RESOURCE_URI "/oic/ping"
54
55 /**
56  * Initialize the KeepAlive.
57  * @param[in]   mode        Host mode of operation.
58  * @return  ::OC_STACK_OK or Appropriate error code.
59  */
60 OCStackResult InitializeKeepAlive(OCMode mode);
61
62 /**
63  * Terminates the KeepAlive.
64  * @param[in]   mode        Host mode of operation.
65  * @return  ::OC_STACK_OK or Appropriate error code.
66  */
67 OCStackResult TerminateKeepAlive(OCMode mode);
68
69 /**
70  * Process the KeepAlive timer to send ping message to OIC Server.
71  */
72 void ProcessKeepAlive();
73
74 /**
75  * This API will be called from RI layer whenever there is a request for KeepAlive.
76  * Virtual Resource.
77  * @param[in]   request     Received request information.
78  * @param[in]   resource    Resource handle used for sending the response.
79  * @return  ::OC_STACK_OK or Appropriate error code.
80  */
81 OCStackResult HandleKeepAliveRequest(OCServerRequest *request,
82                                      const OCResource *resource);
83
84 /**
85  * API to handle the connected device for KeepAlive.
86  * @param[in]   endpoint        Remote endpoint information.
87  * @param[in]   isConnected     Whether keepalive message needs to be sent.
88  * @param[in]   isClient        Host Mode of Operation.
89  */
90 void HandleKeepAliveConnCB(const CAEndpoint_t *endpoint, bool isConnected, bool isClient);
91
92 #ifdef __cplusplus
93 } // extern "C"
94 #endif
95
96 #endif // KEEP_ALIVE_H_