TNLPriority TNLConvertQualityOfServiceToTNLPriority()

in Source/TNLPriority.m [66:112]


TNLPriority TNLConvertQualityOfServiceToTNLPriority(NSQualityOfService qos)
{
    if (qos == NSQualityOfServiceDefault) {
        qos = (NSQualityOfServiceUserInitiated + NSQualityOfServiceUtility) / 2;
    }

    // Below I will denote how much of the range of possibilities remain with comments
    // [] == bounded inclusive
    // () == bounded exclusive
    // Example:
    //    [Val1...Val2) == "from Val1 inclusive to Val2 exclusive"


    // [INF...INF]

    if (qos > NSQualityOfServiceUserInitiated) {
        return TNLPriorityVeryHigh + 1;
    }

    // [INF...UserInitiated]

    if (qos < NSQualityOfServiceBackground) {
        return TNLPriorityVeryLow - 1;
    }

    // [Background...UserInitiated]

    if (qos < NSQualityOfServiceUtility) {
        return TNLPriorityVeryLow;
    }

    // [Utility...UserInitiated]

    if (qos == NSQualityOfServiceUtility) {
        return TNLPriorityLow;
    }

    // (Utility...UserInitiated]

    if (qos <= ((NSQualityOfServiceUserInitiated + NSQualityOfServiceUtility) / 2)) {
        return TNLPriorityNormal;
    }

    // (Default...UserInitiated]

    return TNLPriorityHigh;
}