void CAHandleRequestResponseCallbacks() { #ifdef SINGLE_THREAD CAReadData(); CARetransmissionBaseRoutine((void *)&g_retransmissionContext); #else #ifdef SINGLE_HANDLE // parse the data and call the callbacks. // #1 parse the data // #2 get endpoint ca_mutex_lock(g_receiveThread.threadMutex); u_queue_message_t *item = u_queue_get_element(g_receiveThread.dataQueue); ca_mutex_unlock(g_receiveThread.threadMutex); if (NULL == item) { return; } // get values void *msg = item->msg; if (NULL == msg) { return; } // get endpoint CAData_t *td = (CAData_t *) msg; if (td->requestInfo && g_requestHandler) { OIC_LOG_V(DEBUG, TAG, "request callback : %d", td->requestInfo->info.numOptions); g_requestHandler(td->remoteEndpoint, td->requestInfo); } else if (td->responseInfo && g_responseHandler) { OIC_LOG_V(DEBUG, TAG, "response callback : %d", td->responseInfo->info.numOptions); g_responseHandler(td->remoteEndpoint, td->responseInfo); } else if (td->errorInfo && g_errorHandler) { OIC_LOG_V(DEBUG, TAG, "error callback error: %d", td->errorInfo->result); g_errorHandler(td->remoteEndpoint, td->errorInfo); } CADestroyData(msg, sizeof(CAData_t)); OICFree(item); #endif /* SINGLE_HANDLE */ #endif }
void CAHandleRequestResponseCallbacks() { CAReadData(); CARetransmissionBaseRoutine((void *)&g_retransmissionContext); }