1 /* ****************************************************************
3 * Copyright 2015 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 ******************************************************************/
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
32 #include "ocserverrequest.h"
33 #include "ocresource.h"
41 * Name of resource type.
43 #define KEEPALIVE_RESOURCE_TYPE_NAME "oic.wk.ping"
46 * Name of resource interface.
48 #define KEEPALIVE_RESOURCE_INTF_NAME "oic.if.rw"
51 * URI of the resource.
53 #define KEEPALIVE_RESOURCE_URI "/oic/ping"
56 * Initialize the KeepAlive.
57 * @return ::OC_STACK_OK or Appropriate error code.
59 OCStackResult InitializeKeepAlive();
62 * Terminates the KeepAlive.
63 * @return ::OC_STACK_OK or Appropriate error code.
65 OCStackResult TerminateKeepAlive();
68 * Process the KeepAlive timer to send ping message to OIC Server.
70 void ProcessKeepAlive();
73 * This API will be called from RI layer whenever there is a request for KeepAlive.
75 * @param[in] endPoint RemoteEndpoint which sent the packet.
76 * @param[in] requestInfo Received coap packet.
77 * @return ::OC_STACK_OK or Appropriate error code.
79 OCStackResult HandleKeepAliveRequest(const CAEndpoint_t* endPoint,
80 const CARequestInfo_t* requestInfo);
83 * API to handle the connected device for KeepAlive.
84 * @return Current Time.
86 void HandleKeepAliveConnCB(const CAEndpoint_t *endpoint);
89 * API to handle the disconnected device for KeepAlive.
90 * @return Current Time.
92 void HandleKeepAliveDisconnCB(const CAEndpoint_t *endpoint);
98 #endif // KEEP_ALIVE_H_