CAResult_t CAIPStartNetworkMonitor() { return CAIPJniInit(); }
CAResult_t CAIPInitializeNetworkMonitor(const ca_thread_pool_t threadPool) { OIC_LOG(DEBUG, IP_MONITOR_TAG, "CAIPInitializeNetworkMonitor IN"); VERIFY_NON_NULL(threadPool, IP_MONITOR_TAG, "threadPool is null"); CAResult_t ret = CAIPJniInit(); if (CA_STATUS_OK != ret) { OIC_LOG(ERROR, IP_MONITOR_TAG, "Initialization failed"); return ret; } ret = CAIPJniSetContext(); if (CA_STATUS_OK != ret) { OIC_LOG(ERROR, IP_MONITOR_TAG, "CAIPJniSetContext failed"); return ret; } ret = CACreateIPJNIInterfaceObject(g_context); if (CA_STATUS_OK != ret) { OIC_LOG(ERROR, IP_MONITOR_TAG, "unable to create CaIpInterface instance"); return ret; } ret = CAInitializeNetworkMonitorMutexes(); if (CA_STATUS_OK != ret) { OIC_LOG(ERROR, IP_MONITOR_TAG, "CAInitializeNetworkMonitorMutexes failed"); return CA_STATUS_FAILED; } ca_mutex_lock(g_networkMonitorContextMutex); g_networkMonitorContext = (CAIPNetworkMonitorContext *) OICCalloc( 1, sizeof(*g_networkMonitorContext)); if (!g_networkMonitorContext) { OIC_LOG(ERROR, IP_MONITOR_TAG, "g_networkMonitorContext Malloc failed"); ca_mutex_unlock(g_networkMonitorContextMutex); CADestroyNetworkMonitorMutexes(); return CA_MEMORY_ALLOC_FAILED; } g_networkMonitorContext->threadPool = threadPool; g_networkMonitorContext->netInterfaceList = u_arraylist_create(); if (!g_networkMonitorContext->netInterfaceList) { OIC_LOG(ERROR, IP_MONITOR_TAG, "u_arraylist_create failed"); OICFree(g_networkMonitorContext); ca_mutex_unlock(g_networkMonitorContextMutex); CADestroyNetworkMonitorMutexes(); return CA_MEMORY_ALLOC_FAILED; } CAIPUpdateInterfaceInformation(&g_networkMonitorContext->netInterfaceList); if (u_arraylist_length(g_networkMonitorContext->netInterfaceList)) { g_networkMonitorContext->nwConnectivityStatus = CA_INTERFACE_UP; } else { g_networkMonitorContext->nwConnectivityStatus = CA_INTERFACE_DOWN; } ca_mutex_unlock(g_networkMonitorContextMutex); OIC_LOG(DEBUG, IP_MONITOR_TAG, "OUT"); return CA_STATUS_OK; }