in source/fleet_provisioning.c [316:372]
static TopicSuffix_t parseTopicSuffix( const char * pRemainingTopic,
uint16_t remainingLength )
{
TopicSuffix_t ret = TopicInvalidSuffix;
FleetProvisioningStatus_t status = FleetProvisioningNoMatch;
const char * pTopicCursor = pRemainingTopic;
uint16_t cursorLength = remainingLength;
assert( pRemainingTopic != NULL );
/* Check if publish topic */
if( cursorLength == 0U )
{
ret = TopicPublish;
status = FleetProvisioningSuccess;
}
/* Check if accepted topic */
if( status == FleetProvisioningNoMatch )
{
status = consumeIfMatch( &pTopicCursor,
&cursorLength,
FP_API_ACCEPTED_SUFFIX,
FP_API_LENGTH_ACCEPTED_SUFFIX );
if( status == FleetProvisioningSuccess )
{
if( cursorLength == 0U )
{
ret = TopicAccepted;
}
else
{
status = FleetProvisioningError;
}
}
}
/* Check if rejected topic */
if( status == FleetProvisioningNoMatch )
{
status = consumeIfMatch( &pTopicCursor,
&cursorLength,
FP_API_REJECTED_SUFFIX,
FP_API_LENGTH_REJECTED_SUFFIX );
if( status == FleetProvisioningSuccess )
{
if( cursorLength == 0U )
{
ret = TopicRejected;
}
}
}
return ret;
}