-
-void CAEDRNativeAddDeviceSocketToList(JNIEnv *env, jobject deviceSocket)
-{
- OIC_LOG(DEBUG, TAG, "[BLE][Native] CANativeAddDeviceobjToList");
-
- if(!deviceSocket)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] Device is null");
- return;
- }
-
- if(!gdeviceObjectList)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] gdeviceObjectList is null");
- return;
- }
-
- jstring jni_remoteAddress = CAEDRNativeGetAddressFromDeviceSocket(env, deviceSocket);
- if(!jni_remoteAddress)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] jni_remoteAddress is null");
- return;
- }
-
- u_mutex_lock(gMutexSocketListManager);
-
- const char* remoteAddress = (*env)->GetStringUTFChars(env, jni_remoteAddress, NULL);
-
- if(!CAEDRNativeIsDeviceSocketInList(env, remoteAddress))
- {
- jobject gDeviceSocker = (*env)->NewGlobalRef(env, deviceSocket);
- u_arraylist_add(gdeviceObjectList, gDeviceSocker);
- OIC_LOG_V(DEBUG, TAG, "Set Socket Object to Array");
- }
-
- u_mutex_unlock(gMutexSocketListManager);
-}
-
-jboolean CAEDRNativeIsDeviceSocketInList(JNIEnv *env, const char* remoteAddress)
-{
- OIC_LOG(DEBUG, TAG, "[BLE][Native] CANativeIsDeviceObjInList");
-
- jint index;
- for (index = 0; index < u_arraylist_length(gdeviceObjectList); index++)
- {
-
- jobject jarrayObj = (jobject) u_arraylist_get(gdeviceObjectList, index);
- if(!jarrayObj)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] jarrayObj is null");
- return TRUE;
- }
-
- jstring jni_setAddress = CAEDRNativeGetAddressFromDeviceSocket(env, jarrayObj);
- if(!jni_setAddress)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] jni_setAddress is null");
- return TRUE;
- }
-
- const char* setAddress = (*env)->GetStringUTFChars(env, jni_setAddress, NULL);
-
- if(!strcmp(remoteAddress, setAddress))
- {
- OIC_LOG_V(DEBUG, TAG, "the device is already set");
- return TRUE;
- }
- else
- {
- continue;
- }
- }
-
- OIC_LOG_V(DEBUG, TAG, "there are no the Device obejct in list. we can add");
- return FALSE;
-}
-
-void CAEDRNativeRemoveAllDeviceSocket(JNIEnv *env)
-{
- OIC_LOG_V(DEBUG, TAG, "CANativeRemoveAllDeviceObjsList");
-
- if(!gdeviceObjectList)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] gdeviceObjectList is null");
- return;
- }
-
- jint index;
- for (index = 0; index < u_arraylist_length(gdeviceObjectList); index++)
- {
- jobject jarrayObj = (jobject) u_arraylist_get(gdeviceObjectList, index);
- if(!jarrayObj)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] jarrayObj is null");
- return;
- }
- (*env)->DeleteGlobalRef(env, jarrayObj);
- }
-
- OICFree(gdeviceObjectList);
- gdeviceObjectList = NULL;
- return;
-}
-
-void CAEDRNativeRemoveDeviceSocket(JNIEnv *env, jobject deviceSocket)
-{
- OIC_LOG_V(DEBUG, TAG, "CAEDRNativeRemoveDeviceSocket");
-
- if(!gdeviceObjectList)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] gdeviceObjectList is null");
- return;
- }
-
- u_mutex_lock(gMutexSocketListManager);
-
- jint index;
- for (index = 0; index < u_arraylist_length(gdeviceObjectList); index++)
- {
- jobject jarrayObj = (jobject) u_arraylist_get(gdeviceObjectList, index);
- if(!jarrayObj)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] jarrayObj is null");
- continue;
- }
-
- jstring jni_setAddress = CAEDRNativeGetAddressFromDeviceSocket(env, jarrayObj);
- if(!jni_setAddress)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] jni_setAddress is null");
- continue;
- }
- const char* setAddress = (*env)->GetStringUTFChars(env, jni_setAddress, NULL);
-
- jstring jni_remoteAddress = CAEDRNativeGetAddressFromDeviceSocket(env, deviceSocket);
- if(!jni_remoteAddress)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] jni_remoteAddress is null");
- continue;
- }
- const char* remoteAddress = (*env)->GetStringUTFChars(env, jni_remoteAddress, NULL);
-
- if(!strcmp(setAddress, remoteAddress))
- {
- OIC_LOG_V(DEBUG, TAG, "[BLE][Native] remove object : %s", remoteAddress);
- (*env)->DeleteGlobalRef(env, jarrayObj);
-
- CAEDRReorderingDeviceSocketList(index);
- break;
- }
- }
- u_mutex_unlock(gMutexSocketListManager);
-
- OIC_LOG(DEBUG, TAG, "[BLE][Native] there are no target object");
- return;
-}
-
-jobject CAEDRNativeGetDeviceSocket(uint32_t idx)
-{
- OIC_LOG_V(DEBUG, TAG, "CAEDRNativeGetDeviceSocket");
-
- if(idx < 0)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] index is not available");
- return NULL;
- }
-
- if(!gdeviceObjectList)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] gdeviceObjectList is null");
- return NULL;
- }
-
- jobject jarrayObj = (jobject) u_arraylist_get(gdeviceObjectList, idx);
- if(!jarrayObj)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] jarrayObj is not available");
- return NULL;
- }
- return jarrayObj;
-}
-
-uint32_t CAEDRGetSocketListLength()
-{
- if(!gdeviceObjectList)
- {
- OIC_LOG(DEBUG, TAG, "[BLE][Native] gdeviceObjectList is null");
- return 0;
- }
-
- uint32_t length = u_arraylist_length(gdeviceObjectList);
-
- return length;
-}
-
-void CAEDRReorderingDeviceSocketList(uint32_t index)
-{
- if (index >= gdeviceObjectList->length)
- {
- return;
- }
-
- if (index < gdeviceObjectList->length - 1)
- {
- memmove(&gdeviceObjectList->data[index], &gdeviceObjectList->data[index + 1],
- (gdeviceObjectList->length - index - 1) * sizeof(void *));
- }
-
- gdeviceObjectList->size--;
- gdeviceObjectList->length--;
-}
-
-void CAEDRInitializeClient(u_thread_pool_t handle)
-{
- OIC_LOG(DEBUG, TAG, "IN");
- CAEDRInitialize(handle);
- OIC_LOG(DEBUG, TAG, "OUT");
-}
-