float TNLConvertTNLPriorityToURLSessionTaskPriority()

in Source/TNLPriority.m [242:274]


float TNLConvertTNLPriorityToURLSessionTaskPriority(TNLPriority pri)
{
    switch (pri) {
        case TNLPriorityVeryLow:
            return 0.1f;
        case TNLPriorityLow:
            return 0.3f;
        case TNLPriorityNormal:
            return 0.5f;
        case TNLPriorityHigh:
            return 0.7f;
        case TNLPriorityVeryHigh:
            return 0.9f;
        default:
            break;
    }

    TNLStaticAssert(0.1f < sFloatPriorityBucketOffset + sFloatPriorityBucketSize, Miss_Matched_Priority_Buckets);
    TNLStaticAssert(0.3f < sFloatPriorityBucketOffset + (sFloatPriorityBucketSize * 2.0), Miss_Matched_Priority_Buckets);
    TNLStaticAssert(0.5f < sFloatPriorityBucketOffset + (sFloatPriorityBucketSize * 3.0), Miss_Matched_Priority_Buckets);
    TNLStaticAssert(0.7f < sFloatPriorityBucketOffset + (sFloatPriorityBucketSize * 4.0), Miss_Matched_Priority_Buckets);
    TNLStaticAssert(0.9f > sFloatPriorityBucketOffset + (sFloatPriorityBucketSize * 4.0), Miss_Matched_Priority_Buckets);

    if (pri < TNLPriorityVeryLow) {
        return 0.0f;
    }
    if (pri > TNLPriorityVeryHigh) {
        return 1.0f;
    }

    TNLAssertNever();
    return 0.5f;
}