OtaErr_t setDataInterface()

in source/ota_interface.c [76:147]


OtaErr_t setDataInterface( OtaDataInterface_t * pDataInterface,
                           const uint8_t * pProtocol )
{
    OtaErr_t err = OtaErrInvalidDataProtocol;
    bool httpInJobDoc;
    bool mqttInJobDoc;

    httpInJobDoc = ( strstr( ( const char * ) pProtocol, "\"HTTP\"" ) != NULL ) ? true : false;
    mqttInJobDoc = ( strstr( ( const char * ) pProtocol, "\"MQTT\"" ) != NULL ) ? true : false;

    #if ( ( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_MQTT ) && !( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_HTTP ) )
        ( void ) httpInJobDoc;

        if( mqttInJobDoc == true )
        {
            pDataInterface->initFileTransfer = initFileTransfer_Mqtt;
            pDataInterface->requestFileBlock = requestFileBlock_Mqtt;
            pDataInterface->decodeFileBlock = decodeFileBlock_Mqtt;
            pDataInterface->cleanup = cleanupData_Mqtt;
            err = OtaErrNone;
        }
    #elif ( ( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_HTTP ) && !( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_MQTT ) )
        ( void ) mqttInJobDoc;

        if( httpInJobDoc == true )
        {
            pDataInterface->initFileTransfer = initFileTransfer_Http;
            pDataInterface->requestFileBlock = requestDataBlock_Http;
            pDataInterface->decodeFileBlock = decodeFileBlock_Http;
            pDataInterface->cleanup = cleanupData_Http;
            err = OtaErrNone;
        }
    #else /* if ( ( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_MQTT ) && !( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_HTTP ) ) */
        #if ( configOTA_PRIMARY_DATA_PROTOCOL == OTA_DATA_OVER_MQTT )
            if( mqttInJobDoc == true )
            {
                pDataInterface->initFileTransfer = initFileTransfer_Mqtt;
                pDataInterface->requestFileBlock = requestFileBlock_Mqtt;
                pDataInterface->decodeFileBlock = decodeFileBlock_Mqtt;
                pDataInterface->cleanup = cleanupData_Mqtt;
                err = OtaErrNone;
            }
            else if( httpInJobDoc == true )
            {
                pDataInterface->initFileTransfer = initFileTransfer_Http;
                pDataInterface->requestFileBlock = requestDataBlock_Http;
                pDataInterface->decodeFileBlock = decodeFileBlock_Http;
                pDataInterface->cleanup = cleanupData_Http;
                err = OtaErrNone;
            }
        #elif ( configOTA_PRIMARY_DATA_PROTOCOL == OTA_DATA_OVER_HTTP )
            if( httpInJobDoc == true )
            {
                pDataInterface->initFileTransfer = initFileTransfer_Http;
                pDataInterface->requestFileBlock = requestDataBlock_Http;
                pDataInterface->decodeFileBlock = decodeFileBlock_Http;
                pDataInterface->cleanup = cleanupData_Http;
                err = OtaErrNone;
            }
            else if( mqttInJobDoc == true )
            {
                pDataInterface->initFileTransfer = initFileTransfer_Mqtt;
                pDataInterface->requestFileBlock = requestFileBlock_Mqtt;
                pDataInterface->decodeFileBlock = decodeFileBlock_Mqtt;
                pDataInterface->cleanup = cleanupData_Mqtt;
                err = OtaErrNone;
            }
        #endif /* if ( configOTA_PRIMARY_DATA_PROTOCOL == OTA_DATA_OVER_MQTT ) */
    #endif /* if ( ( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_MQTT ) && !( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_HTTP ) ) */

    return err;
}