/** * implement for adapter common method. */ CAResult_t CAEDRServerStart() { if (!g_threadPoolHandle) { return CA_STATUS_NOT_INITIALIZED; } oc_mutex_lock(g_mutexStartServerState); if (g_isStartServer) { OIC_LOG(DEBUG, TAG, "server already started"); oc_mutex_unlock(g_mutexStartServerState); return CA_STATUS_OK; } oc_mutex_unlock(g_mutexStartServerState); CAResult_t res = CAEDRServerStartAcceptThread(); if (CA_STATUS_OK == res) { res = CAEDRStartReceiveThread(false); if (CA_STATUS_OK != res) { OIC_LOG(ERROR, TAG, "failed to start receive thread"); CAEDRServerStop(); return CA_STATUS_FAILED; } oc_mutex_lock(g_mutexStartServerState); g_isStartServer = true; oc_mutex_unlock(g_mutexStartServerState); } return res; }
/** * implement for adapter common method. */ CAResult_t CAEDRServerStart() { if (!g_threadPoolHandle) { return CA_STATUS_NOT_INITIALIZED; } CAEDRServerStartAcceptThread(); CAResult_t res = CAEDRStartUnicastServer(false); if (CA_STATUS_OK != res) { OIC_LOG(ERROR, TAG, "CAEDRStartUnicastServer failed"); CAEDRServerStop(); return CA_STATUS_FAILED; } return res; }
CAResult_t CAStopEDR() { OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "IN"); // Stop RFComm server if it is running CAEDRServerStop(); // Stop network monitor CAEDRStopNetworkMonitor(); // Stop the adapter CAEDRClientUnsetCallbacks(); // Disconnect all the client connections CAEDRClientDisconnectAll(); // Stop Send and receive Queue CAAdapterStopQueue(); OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT"); return CA_STATUS_OK; }