void KvsApp_terminate()

in src/source/app/kvsapp.c [891:994]


void KvsApp_terminate(KvsAppHandle handle)
{
    KvsApp_t *pKvs = (KvsApp_t *)handle;

    if (pKvs != NULL && Lock(pKvs->xLock) == LOCK_OK)
    {
        if (pKvs->xStreamHandle != NULL)
        {
            prvStreamFlush(pKvs);
            Kvs_streamTermintate(pKvs->xStreamHandle);
            pKvs->xStreamHandle = NULL;
        }
        if (pKvs->pHost != NULL)
        {
            kvsFree(pKvs->pHost);
            pKvs->pHost = NULL;
        }
        if (pKvs->pRegion != NULL)
        {
            kvsFree(pKvs->pRegion);
            pKvs->pRegion = NULL;
        }
        if (pKvs->pService != NULL)
        {
            kvsFree(pKvs->pService);
            pKvs->pService = NULL;
        }
        if (pKvs->pStreamName != NULL)
        {
            kvsFree(pKvs->pStreamName);
            pKvs->pStreamName = NULL;
        }
        if (pKvs->pDataEndpoint != NULL)
        {
            kvsFree(pKvs->pDataEndpoint);
            pKvs->pDataEndpoint = NULL;
        }
        if (pKvs->pAwsAccessKeyId != NULL)
        {
            kvsFree(pKvs->pAwsAccessKeyId);
            pKvs->pAwsAccessKeyId = NULL;
        }
        if (pKvs->pAwsSecretAccessKey != NULL)
        {
            kvsFree(pKvs->pAwsSecretAccessKey);
            pKvs->pAwsSecretAccessKey = NULL;
        }
        if (pKvs->pIotCredentialHost != NULL)
        {
            kvsFree(pKvs->pIotCredentialHost);
            pKvs->pIotCredentialHost = NULL;
        }
        if (pKvs->pIotRoleAlias != NULL)
        {
            kvsFree(pKvs->pIotRoleAlias);
            pKvs->pIotRoleAlias = NULL;
        }
        if (pKvs->pIotThingName != NULL)
        {
            kvsFree(pKvs->pIotThingName);
            pKvs->pIotThingName = NULL;
        }
        if (pKvs->pIotX509RootCa != NULL)
        {
            kvsFree(pKvs->pIotX509RootCa);
            pKvs->pIotX509RootCa = NULL;
        }
        if (pKvs->pIotX509Certificate != NULL)
        {
            kvsFree(pKvs->pIotX509Certificate);
            pKvs->pIotX509Certificate = NULL;
        }
        if (pKvs->pIotX509PrivateKey != NULL)
        {
            kvsFree(pKvs->pIotX509PrivateKey);
            pKvs->pIotX509PrivateKey = NULL;
        }
        if (pKvs->pVideoTrackInfo != NULL)
        {
            prvVideoTrackInfoTerminate(pKvs->pVideoTrackInfo);
        }
        if (pKvs->pAudioTrackInfo != NULL)
        {
            prvAudioTrackInfoTerminate(pKvs->pAudioTrackInfo);
        }
        if (pKvs->pSps != NULL)
        {
            kvsFree(pKvs->pSps);
            pKvs->pSps = NULL;
        }
        if (pKvs->pPps != NULL)
        {
            kvsFree(pKvs->pPps);
            pKvs->pPps = NULL;
        }

        Unlock(pKvs->xLock);

        Lock_Deinit(pKvs->xLock);

        memset(pKvs, 0, sizeof(KvsApp_t));
        kvsFree(pKvs);
    }
}