Ejemplo n.º 1
0
CAResult_t CARemoveBLEServiceInfoToList(BLEServiceList **serviceList,
                                        BLEServiceInfo *bleServiceInfo,
                                        const char *bdAddress)
{

    OIC_LOG(DEBUG, TZ_BLE_CLIENT_UTIL_TAG, "IN");

    VERIFY_NON_NULL(serviceList, NULL, "Param serviceList is NULL");
    VERIFY_NON_NULL(*serviceList, NULL, "Param *serviceList is NULL");
    VERIFY_NON_NULL(bdAddress, NULL, "Param bdAddress is NULL");

    BLEServiceList *prev = NULL;
    BLEServiceList *cur = *serviceList;
    while (cur != NULL)
    {
        if (!strcasecmp(cur->serviceInfo->bdAddress, bdAddress))
        {
            if (cur == *serviceList)
            {
                *serviceList = cur->next;

                cur->next = NULL;
                CAFreeBLEServiceList(cur);
                CADecrementRegisteredServiceCount();
                OIC_LOG(DEBUG, TZ_BLE_CLIENT_UTIL_TAG, "OUT");
                return CA_STATUS_OK;
            }
            else
            {
                prev->next = cur->next;

                cur->next = NULL;
                CAFreeBLEServiceList(cur);
                CADecrementRegisteredServiceCount();
                OIC_LOG(DEBUG, TZ_BLE_CLIENT_UTIL_TAG, "OUT");
                return CA_STATUS_OK;
            }
        }
        else
        {
            prev = cur;
            cur = cur->next;
        }
    }
    OIC_LOG(DEBUG, TZ_BLE_CLIENT_UTIL_TAG, " OUT");
    return CA_STATUS_FAILED;
}
Ejemplo n.º 2
0
void CATerminateLEGattClient()
{
    OIC_LOG(DEBUG,  TZ_BLE_CLIENT_TAG, "IN");
    ca_mutex_lock(g_bleClientStateMutex);

    ca_mutex_lock(g_bleServerBDAddressMutex);

    OICFree(g_remoteAddress);

    ca_mutex_unlock(g_bleServerBDAddressMutex);

    ca_mutex_lock(g_bleServiceListMutex);
    CAFreeBLEServiceList(g_bLEServiceList);
    g_bLEServiceList = NULL;
    ca_mutex_unlock(g_bleServiceListMutex);

    CAResetRegisteredServiceCount();

    ca_mutex_unlock(g_bleClientStateMutex);

    CATerminateGattClientMutexVariables();

    OIC_LOG(DEBUG,  TZ_BLE_CLIENT_TAG, "OUT");
}