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 * @param[in] mode Host mode of operation.
58 * @return ::OC_STACK_OK or Appropriate error code.
60 OCStackResult InitializeKeepAlive(OCMode mode);
63 * Terminates the KeepAlive.
64 * @param[in] mode Host mode of operation.
65 * @return ::OC_STACK_OK or Appropriate error code.
67 OCStackResult TerminateKeepAlive(OCMode mode);
70 * Process the KeepAlive timer to send ping message to OIC Server.
72 void ProcessKeepAlive();
75 * This API will be called from RI layer whenever there is a request for KeepAlive.
77 * @param[in] endPoint RemoteEndpoint which sent the packet.
78 * @param[in] requestInfo Received coap packet.
79 * @return ::OC_STACK_OK or Appropriate error code.
81 OCStackResult HandleKeepAliveRequest(const CAEndpoint_t* endPoint,
82 const CARequestInfo_t* requestInfo);
85 * API to handle the connected device for KeepAlive.
86 * @return Current Time.
88 void HandleKeepAliveConnCB(const CAEndpoint_t *endpoint);
91 * API to handle the disconnected device for KeepAlive.
92 * @return Current Time.
94 void HandleKeepAliveDisconnCB(const CAEndpoint_t *endpoint);
100 #endif // KEEP_ALIVE_H_