+CAResult_t CARetransmissionClearAdapterData(CARetransmission_t *context, CATransportAdapter_t type)
+{
+ if (NULL == context)
+ {
+ OIC_LOG(ERROR, TAG, "thread instance is empty..");
+ return CA_STATUS_INVALID_PARAM;
+ }
+
+ OIC_LOG_V(DEBUG, TAG, "clear queue data for Adapter : %d ", type);
+
+ // mutex lock
+ oc_mutex_lock(context->threadMutex);
+
+ uint32_t len = u_arraylist_length(context->dataList);
+
+ // find index
+ uint32_t i;
+ for (i = 0; i < len; i++)
+ {
+ // get data
+ CARetransmissionData_t *removedData = (CARetransmissionData_t *) u_arraylist_get(
+ context->dataList, i);
+
+ // free
+ if (NULL != removedData && NULL != removedData->endpoint &&
+ removedData->endpoint->adapter == type)
+ {
+ CAFreeEndpoint(removedData->endpoint);
+ OICFree(removedData->pdu);
+ OICFree(removedData);
+ }
+ }
+
+ // mutex unlock
+ oc_mutex_unlock(context->threadMutex);
+
+ return CA_STATUS_OK;
+}
+