5 #include "caedrinterface.h"
6 #include "caedrnwmonitor.h"
8 #include "oic_malloc.h"
9 #include "uthreadpool.h" /* for thread pool */
11 #include "uarraylist.h"
12 #include "caadapterutils.h"
14 #include "com_iotivity_jar_CAEDRInterface.h"
17 #define TAG PCF("CA_EDR_MONITOR")
19 #define BT_STATE_ON 12
20 #define BT_STATE_OFF 10
24 static jobject gContext;
25 static CAEDRNetworkStatusCallback gNetworkChangeCb = NULL;
27 void CAEDRNetworkMonitorJNISetContext()
29 OIC_LOG_V(DEBUG, TAG, "CAEDRNetworkMonitorJNISetContext");
30 gContext = CANativeJNIGetContext();
34 void CAEDRNetworkMonitorJniInit()
36 OIC_LOG_V(DEBUG, TAG, "CAEDRNetworkMonitorJniInit");
37 g_jvm = CANativeJNIGetJavaVM();
40 CAResult_t CAEDRInitializeNetworkMonitor()
42 OIC_LOG_V(DEBUG, TAG, "IN");
44 CAEDRNetworkMonitorJniInit();
45 CANativeJNIGetJavaVM();
47 OIC_LOG_V(DEBUG, TAG, "OUT");
51 void CAEDRSetNetworkChangeCallback(
52 CAEDRNetworkStatusCallback networkChangeCallback)
54 OIC_LOG_V(DEBUG, TAG, "CAEDRSetNetworkChangeCallback");
55 gNetworkChangeCb = networkChangeCallback;
58 void CAEDRTerminateNetworkMonitor(void)
60 OIC_LOG_V(DEBUG, TAG, "IN");
62 OIC_LOG_V(DEBUG, TAG, "OUT");
65 CAResult_t CAEDRStartNetworkMonitor()
67 OIC_LOG_V(DEBUG, TAG, "IN");
69 OIC_LOG_V(DEBUG, TAG, "OUT");
73 CAResult_t CAEDRStopNetworkMonitor()
75 OIC_LOG_V(DEBUG, TAG, "IN");
77 OIC_LOG_V(DEBUG, TAG, "OUT");
81 CAResult_t CAEDRClientSetCallbacks(void)
83 OIC_LOG_V(DEBUG, TAG, "IN");
85 OIC_LOG_V(DEBUG, TAG, "OUT");
89 JNIEXPORT void JNICALL
90 Java_com_iotivity_jar_CAEDRInterface_CAEDRStateChangedCallback
91 (JNIEnv *env, jobject obj, jint status)
93 // STATE_ON:12, STATE_OFF:10
94 OIC_LOG_V(DEBUG, TAG, "CAEDRInterface - Network State Changed");
96 if(gNetworkChangeCb == NULL)
97 OIC_LOG_V(DEBUG, TAG, "gNetworkChangeCb is null", status);
99 if(BT_STATE_ON == status)
101 CANetworkStatus_t newStatus = CA_INTERFACE_UP;
102 CAEDRServerStartAccpetThread();
103 gNetworkChangeCb(newStatus);
105 else if(BT_STATE_OFF == status)
107 CANetworkStatus_t newStatus = CA_INTERFACE_DOWN;
108 CAEDRNativeRemoveAllDeviceSocket(env);
109 CAEDRNativeRemoveAllDeviceState(env);
110 gNetworkChangeCb(newStatus);
114 JNIEXPORT void JNICALL
115 Java_com_iotivity_jar_CAEDRInterface_CAEDRBondStateChangedCallback
116 (JNIEnv *env, jobject obj, jstring addr)
118 OIC_LOG_V(DEBUG, TAG, "CAEDRInterface - Bond State Changed");
122 CAEDRNativeRemoveDeviceSocketBaseAddr(env, addr);
123 CAEDRNativeRemoveDevice(env, addr);