2 * //******************************************************************
4 * // Copyright 2016 Samsung Electronics All Rights Reserved.
6 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
8 * // Licensed under the Apache License, Version 2.0 (the "License");
9 * // you may not use this file except in compliance with the License.
10 * // You may obtain a copy of the License at
12 * // http://www.apache.org/licenses/LICENSE-2.0
14 * // Unless required by applicable law or agreed to in writing, software
15 * // distributed under the License is distributed on an "AS IS" BASIS,
16 * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * // See the License for the specific language governing permissions and
18 * // limitations under the License.
20 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
23 #include "JniOcDirectPairDevice.h"
24 #include "OCDirectPairing.h"
25 #include "OCDirectPairing.h"
27 namespace PH = std::placeholders;
29 JniOcDirectPairDevice::JniOcDirectPairDevice(std::shared_ptr<OC::OCDirectPairing> directPairingDevice)
30 : m_sharedDirectPairDevice(directPairingDevice)
34 JniOcDirectPairDevice::~JniOcDirectPairDevice()
36 LOGD("~JniOcDirectPairDevice()");
37 m_sharedDirectPairDevice = nullptr;
40 std::string JniOcDirectPairDevice::getHost()
42 return m_sharedDirectPairDevice->getHost();
45 std::vector<OCPrm_t> JniOcDirectPairDevice::getPairingMethods()
48 return m_sharedDirectPairDevice->getPairingMethods();
51 OCConnectivityType JniOcDirectPairDevice::connectivityType()
53 return m_sharedDirectPairDevice->getConnType();
56 JniOcDirectPairDevice* JniOcDirectPairDevice::getJniOcDirectPairDevicePtr(JNIEnv *env, jobject thiz)
58 JniOcDirectPairDevice *dpDev = GetHandle<JniOcDirectPairDevice>(env, thiz);
59 if (env->ExceptionCheck())
61 LOGE("Failed to get native handle from OcDirectPairingDevice");
65 ThrowOcException(JNI_NO_NATIVE_POINTER, "");
69 std::shared_ptr<OC::OCDirectPairing> JniOcDirectPairDevice::getPtr()
71 return m_sharedDirectPairDevice;
74 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcDirectPairDevice_getHost
75 (JNIEnv *env, jobject thiz)
78 LOGD("OcDirectPairing_getHost");
80 JniOcDirectPairDevice* device = JniOcDirectPairDevice::getJniOcDirectPairDevicePtr(env,thiz);
86 std::string dev = device->getHost();
87 return env->NewStringUTF(dev.c_str());
90 JNIEXPORT jintArray JNICALL Java_org_iotivity_base_OcDirectPairDevice_getPairingMethods
91 (JNIEnv *env, jobject thiz)
94 LOGD("OcDirectPairing_getPairingMethods");
96 std::vector<jint> pairingMethodList;
97 JniOcDirectPairDevice* device = JniOcDirectPairDevice::getJniOcDirectPairDevicePtr(env,thiz);
103 std::vector<OCPrm_t> pairingMethods = device->getPairingMethods();
104 return JniOcDirectPairDevice::JconvertIntVectorToJavaList(env,pairingMethods);
108 jintArray JniOcDirectPairDevice::JconvertIntVectorToJavaList(JNIEnv *env, std::vector<OCPrm_t> &vector)
111 jsize len = static_cast<jsize>(vector.size());
113 jintArray intArray = env->NewIntArray(len);
119 env->SetIntArrayRegion(intArray, (jsize)0, len, (const jint*)&vector[0]);
121 if (env->ExceptionCheck())
123 LOGE("ArrayIndexOutOfBoundsException in JconvertIntVectorToJavaList");
129 * Class: org_iotivity_base_OcDirectPairDevice
130 * Method: getConnectivityTypeN
133 JNIEXPORT jint JNICALL Java_org_iotivity_base_OcDirectPairDevice_getConnectivityTypeN
134 (JNIEnv *env, jobject thiz)
136 LOGD("OcDirectPairDevice_getConnectivityType");
137 JniOcDirectPairDevice* device = JniOcDirectPairDevice::getJniOcDirectPairDevicePtr(env,thiz);
143 OCConnectivityType connectivityType = device->connectivityType();
144 return static_cast<jint>(connectivityType);