1 /******************************************************************
3 * Copyright 2014 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 ******************************************************************/
25 #include "cainterface.h"
26 #include "caremotehandler.h"
27 #include "caprotocolmessage_singlethread.h"
28 #include "canetworkconfigurator.h"
31 #include "cainterfacecontroller_singlethread.h"
32 #include "camessagehandler_singlethread.h"
36 static void CAMessageHandler(CAToken_t token, CAResult_t res)
39 // it will notify the result for the each action.
43 CAResult_t CAInitialize()
45 OIC_LOG(DEBUG, TAG, "IN");
47 CASetMessageHandlerCallback(CAMessageHandler);
49 CAResult_t res = CAInitializeMessageHandler();
51 if (res != CA_STATUS_OK)
55 OIC_LOG(DEBUG, TAG, "OUT");
61 OIC_LOG(DEBUG, TAG, "IN");
62 CATerminateMessageHandler();
63 OIC_LOG(DEBUG, TAG, "OUT");
66 CAResult_t CAStartListeningServer()
68 return CAStartListeningServerAdapters();
71 CAResult_t CAStartDiscoveryServer()
73 return CAStartDiscoveryServerAdapters();
76 CAResult_t CARegisterHandler(CARequestCallback ReqHandler, CAResponseCallback RespHandler)
78 OIC_LOG(DEBUG, TAG, "IN");
79 CASetRequestResponseCallbacks(ReqHandler, RespHandler);
80 OIC_LOG(DEBUG, TAG, "OUT");
85 CAResult_t CACreateRemoteEndpoint(const CAURI_t uri,
86 const CAConnectivityType_t connectivityType,CARemoteEndpoint_t **remoteEndpoint)
88 OIC_LOG(DEBUG, TAG, "IN");
90 CARemoteEndpoint_t *remote = CACreateRemoteEndpointUriInternal(uri,connectivityType);
92 *remoteEndpoint = remote;
95 return CA_STATUS_FAILED;
97 OIC_LOG(DEBUG, TAG, "OUT");
101 void CADestroyRemoteEndpoint(CARemoteEndpoint_t *rep)
103 CADestroyRemoteEndpointInternal(rep);
106 CAResult_t CAGenerateToken(CAToken_t *token)
108 return CAGenerateTokenInternal(token);
111 void CADestroyToken(CAToken_t token)
113 OIC_LOG(DEBUG, TAG, "IN");
114 CADestroyTokenInternal(token);
115 OIC_LOG(DEBUG, TAG, "OUT");
118 CAResult_t CAGetNetworkInformation(CALocalConnectivity_t **info, uint32_t *size)
120 return CAGetNetworkInformationInternal(info, size);
123 CAResult_t CAFindResource(const CAURI_t resourceUri, const CAToken_t token)
125 OIC_LOG(DEBUG, TAG, "IN");
126 CAResult_t res = CADetachMessageResourceUri(resourceUri, token, NULL, 0);
127 OIC_LOG(DEBUG, TAG, "OUT");
131 CAResult_t CASendRequest(const CARemoteEndpoint_t *object, CARequestInfo_t *requestInfo)
133 return CADetachRequestMessage(object, requestInfo);
136 CAResult_t CASendNotification(const CARemoteEndpoint_t *object, CAResponseInfo_t *responseInfo)
138 return CADetachResponseMessage(object, responseInfo);
141 CAResult_t CASendResponse(const CARemoteEndpoint_t *object, CAResponseInfo_t *responseInfo)
143 return CADetachResponseMessage(object, responseInfo);
146 CAResult_t CAAdvertiseResource(const CAURI_t resourceUri, CAToken_t token,
147 CAHeaderOption_t *options,
150 return CADetachMessageResourceUri(resourceUri, token, options, numOptions);
153 CAResult_t CASelectNetwork(const uint32_t interestedNetwork)
155 OIC_LOG_V(DEBUG, TAG, "Selected n/W=%d", interestedNetwork);
157 if (!(interestedNetwork & 0xf))
159 return CA_NOT_SUPPORTED;
163 if (interestedNetwork & CA_ETHERNET)
165 res = CAAddNetworkType(CA_ETHERNET);
166 if (res != CA_STATUS_OK)
172 if (interestedNetwork & CA_WIFI)
174 res = CAAddNetworkType(CA_WIFI);
175 if (res != CA_STATUS_OK)
181 if (interestedNetwork & CA_EDR)
183 res = CAAddNetworkType(CA_EDR);
184 if (res != CA_STATUS_OK)
190 if (interestedNetwork & CA_LE)
192 res = CAAddNetworkType(CA_LE);
193 if (res != CA_STATUS_OK)
198 OIC_LOG(DEBUG, TAG, "OUT");
202 CAResult_t CAUnSelectNetwork(const uint32_t nonInterestedNetwork)
204 OIC_LOG_V(DEBUG, TAG, "unselected n/w=%d", nonInterestedNetwork);
206 if (!(nonInterestedNetwork & 0xf))
208 return CA_NOT_SUPPORTED;
213 if (nonInterestedNetwork & CA_ETHERNET)
215 res = CARemoveNetworkType(CA_ETHERNET);
216 if (res != CA_STATUS_OK)
222 if (nonInterestedNetwork & CA_WIFI)
224 res = CARemoveNetworkType(CA_WIFI);
225 if (res != CA_STATUS_OK)
231 if (nonInterestedNetwork & CA_EDR)
233 res = CARemoveNetworkType(CA_EDR);
234 if (res != CA_STATUS_OK)
240 if (nonInterestedNetwork & CA_LE)
242 res = CARemoveNetworkType(CA_LE);
243 if (res != CA_STATUS_OK)
248 OIC_LOG(DEBUG, TAG, "OUT");
252 CAResult_t CAHandleRequestResponse()
254 CAHandleRequestResponseCallbacks();