void logger_deinit()

in v2/src/logger.c [90:121]


void logger_deinit(void)
{
    switch (logger_state)
    {
    default:
        (void)printf("Unexpected logger state: %" PRI_MU_ENUM "", MU_ENUM_VALUE(LOGGER_STATE, logger_state));
        break;

    case LOGGER_STATE_NOT_INITIALIZED:
    {
        /* Codes_SRS_LOGGER_01_006: [ If logger is not initialized, logger_deinit shall return. ] */
        (void)printf("logger_deinit called in state %" PRI_MU_ENUM "\r\n", MU_ENUM_VALUE(LOGGER_STATE, logger_state));
        break;
    }
    case LOGGER_STATE_INITIALIZED:
    {
        /* Codes_SRS_LOGGER_01_021: [ Otherwise, logger_deinit shall decrement the initialization counter for the module. ] */
        if ((--logger_init_count) == 0)
        {
            /* Codes_SRS_LOGGER_01_022: [ If the initilization counter reaches 0: ] */
            /* Codes_SRS_LOGGER_01_007: [ logger_deinit shall call the deinit function of every sink that is configured to be used. ] */
            for (uint32_t i = 0; i < log_sink_count; i++)
            {
                log_sinks[i]->deinit();
            }

            logger_state = LOGGER_STATE_NOT_INITIALIZED;
        }
        break;
    }
    }
}