1 /* ****************************************************************
3 * Copyright 2016 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 ******************************************************************/
21 #include "camanagerleinterface.h"
22 #include "cabtpairinginterface.h"
23 #include "cautilinterface.h"
24 #include "cainterfacecontroller.h"
28 #define TAG "OIC_CA_COMMON_UTILS"
30 CAResult_t CARegisterNetworkMonitorHandler(CAAdapterStateChangedCB adapterStateCB,
31 CAConnectionStateChangedCB connStateCB)
33 OIC_LOG(DEBUG, TAG, "CARegisterNetworkMonitorHandler");
35 CASetNetworkMonitorCallbacks(adapterStateCB, connStateCB);
39 CAResult_t CAUnregisterNetworkMonitorHandler(CAAdapterStateChangedCB adapterStateCB,
40 CAConnectionStateChangedCB connStateCB)
42 OIC_LOG(DEBUG, TAG, "CAUnregisterNetworkMonitorHandler");
44 return CAUnsetNetworkMonitorCallbacks(adapterStateCB, connStateCB);
47 CAResult_t CASetAutoConnectionDeviceInfo(const char *address)
49 OIC_LOG(DEBUG, TAG, "CASetAutoConnectionDeviceInfo");
51 #if defined(__ANDROID__) && defined(LE_ADAPTER)
52 return CASetLEClientAutoConnectionDeviceInfo(address);
55 return CA_NOT_SUPPORTED;
59 CAResult_t CAUnsetAutoConnectionDeviceInfo(const char *address)
61 OIC_LOG(DEBUG, TAG, "CAUnsetAutoConnectionDeviceInfo");
63 #if defined(__ANDROID__) && defined(LE_ADAPTER)
64 return CAUnsetLEClientAutoConnectionDeviceInfo(address);
67 return CA_NOT_SUPPORTED;
71 CAResult_t CASetPortNumberToAssign(CATransportAdapter_t adapter,
72 CATransportFlags_t flag, uint16_t port)
74 uint16_t *targetPort = 0;
76 if (CA_ADAPTER_IP & adapter)
82 targetPort = &caglobals.ports.udp.u6s;
84 else if (CA_IPV4 & flag)
86 targetPort = &caglobals.ports.udp.u4s;
93 targetPort = &caglobals.ports.udp.u6;
95 else if (CA_IPV4 & flag)
97 targetPort = &caglobals.ports.udp.u4;
102 if (CA_ADAPTER_TCP & adapter)
106 targetPort = &caglobals.ports.tcp.u6;
108 else if (CA_IPV4 & flag)
110 targetPort = &caglobals.ports.tcp.u4;
121 return CA_NOT_SUPPORTED;
124 uint16_t CAGetAssignedPortNumber(CATransportAdapter_t adapter, CATransportFlags_t flag)
126 OIC_LOG(DEBUG, TAG, "CAGetAssignedPortNumber");
128 if (CA_ADAPTER_IP & adapter)
130 if (CA_SECURE & flag)
134 return caglobals.ip.u6s.port;
136 else if (CA_IPV4 & flag)
138 return caglobals.ip.u4s.port;
145 return caglobals.ip.u6.port;
147 else if (CA_IPV4 & flag)
149 return caglobals.ip.u4.port;
154 if (CA_ADAPTER_TCP & adapter)
158 return caglobals.tcp.ipv6.port;
160 else if (CA_IPV4 & flag)
162 return caglobals.tcp.ipv4.port;
171 * initialize client connection manager
172 * @param[in] env JNI interface pointer.
173 * @param[in] jvm invocation inferface for JAVA virtual machine.
174 * @param[in] context application context.
176 CAResult_t CAUtilClientInitialize(JNIEnv *env, JavaVM *jvm, jobject context)
178 OIC_LOG(DEBUG, TAG, "CAUtilClientInitialize");
180 CAResult_t res = CA_STATUS_OK;
182 if (CA_STATUS_OK != CAManagerLEClientInitialize(env, jvm, context))
184 OIC_LOG(ERROR, TAG, "CAManagerLEClientInitialize has failed");
185 res = CA_STATUS_FAILED;
190 if (CA_STATUS_OK != CABTPairingInitialize(env, jvm, context))
192 OIC_LOG(ERROR, TAG, "CABTPairingInitialize has failed");
193 res = CA_STATUS_FAILED;
197 #if !defined(LE_ADAPTER) && !defined(EDR_ADAPTER)
206 * terminate client connection manager
207 * @param[in] env JNI interface pointer.
209 CAResult_t CAUtilClientTerminate(JNIEnv *env)
211 OIC_LOG(DEBUG, TAG, "CAUtilClientTerminate");
213 return CAManagerLEClientTerminate(env);
215 OIC_LOG(DEBUG, TAG, "it is not supported");
217 return CA_NOT_SUPPORTED;
222 CAResult_t CAUtilStartScan(JNIEnv *env)
225 return CABTPairingStartScan(env);
227 OIC_LOG(DEBUG, TAG, "it is not supported");
229 return CA_NOT_SUPPORTED;
233 CAResult_t CAUtilStopScan(JNIEnv *env)
236 return CABTPairingStopScan(env);
238 OIC_LOG(DEBUG, TAG, "it is not supported");
240 return CA_NOT_SUPPORTED;
244 CAResult_t CAUtilCreateBond(JNIEnv *env, jobject device)
247 return CABTPairingCreateBond(env, device);
249 OIC_LOG(DEBUG, TAG, "it is not supported");
252 return CA_NOT_SUPPORTED;
256 void CAUtilSetFoundDeviceListener(jobject listener)
259 CABTPairingSetFoundDeviceListener(listener);
265 CAResult_t CAUtilSetLEScanInterval(jint intervalTime, jint workingCount)
267 OIC_LOG(DEBUG, TAG, "CAUtilSetLEScanInterval");
269 CAManagerLESetScanInterval(intervalTime, workingCount);
274 OIC_LOG(DEBUG, TAG, "it is not supported");
275 return CA_NOT_SUPPORTED;