static void prvProvClientUpdateState()

in source/azure_iot_provisioning_client.c [74:137]


static void prvProvClientUpdateState( AzureIoTProvisioningClient_t * pxAzureProvClient,
                                      uint32_t ulActionResult )
{
    uint32_t ulState = pxAzureProvClient->_internal.ulWorkflowState;

    pxAzureProvClient->_internal.ulLastOperationResult = ulActionResult;

    switch( ulState )
    {
        case azureiotprovisioningWF_STATE_CONNECT:
            pxAzureProvClient->_internal.ulWorkflowState =
                ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_SUBSCRIBE :
                azureiotprovisioningWF_STATE_COMPLETE;
            break;

        case azureiotprovisioningWF_STATE_SUBSCRIBE:
            pxAzureProvClient->_internal.ulWorkflowState =
                ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_SUBSCRIBING :
                azureiotprovisioningWF_STATE_COMPLETE;
            break;

        case azureiotprovisioningWF_STATE_SUBSCRIBING:
            pxAzureProvClient->_internal.ulWorkflowState =
                ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_REQUEST :
                azureiotprovisioningWF_STATE_COMPLETE;
            break;

        case azureiotprovisioningWF_STATE_REQUEST:
            pxAzureProvClient->_internal.ulWorkflowState =
                ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_REQUESTING :
                azureiotprovisioningWF_STATE_COMPLETE;
            break;

        case azureiotprovisioningWF_STATE_REQUESTING:
            pxAzureProvClient->_internal.ulWorkflowState =
                ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_RESPONSE :
                azureiotprovisioningWF_STATE_COMPLETE;
            break;

        case azureiotprovisioningWF_STATE_RESPONSE:
            pxAzureProvClient->_internal.ulWorkflowState =
                ulActionResult == eAzureIoTErrorPending ? azureiotprovisioningWF_STATE_WAITING :
                azureiotprovisioningWF_STATE_COMPLETE;
            break;

        case azureiotprovisioningWF_STATE_WAITING:
            pxAzureProvClient->_internal.ulWorkflowState =
                ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_REQUEST :
                azureiotprovisioningWF_STATE_COMPLETE;
            break;

        case azureiotprovisioningWF_STATE_COMPLETE:
            AZLogInfo( ( "AzureIoTProvisioning state 'Complete'" ) );
            break;

        default:
            AZLogError( ( "AzureIoTProvisioning unknown state: [%u]", ( uint16_t ) ulState ) );
            configASSERT( false );
            break;
    }

    AZLogDebug( ( "AzureIoTProvisioning updated state from [%u] -> [%u]", ( uint16_t ) ulState,
                  ( uint16_t ) pxAzureProvClient->_internal.ulWorkflowState ) );
}