STATUS serviceCallResultCheck()

in src/client/src/StreamEvent.c [12:126]


STATUS serviceCallResultCheck(SERVICE_CALL_RESULT callResult)
{
    switch (callResult) {
        case SERVICE_CALL_INVALID_ARG:
            // Invalid args
            return STATUS_SERVICE_CALL_INVALID_ARG_ERROR;

        case SERVICE_CALL_DEVICE_NOT_FOUND:
            // Device not found error
            return STATUS_SERVICE_CALL_DEVICE_NOT_FOND_ERROR;

        case SERVICE_CALL_DEVICE_NOT_PROVISIONED:
            // Device not provisioned
            return STATUS_SERVICE_CALL_DEVICE_NOT_PROVISIONED_ERROR;

        case SERVICE_CALL_NOT_AUTHORIZED:
        case SERVICE_CALL_FORBIDDEN:
            // might be provisioning issue
            return STATUS_SERVICE_CALL_NOT_AUTHORIZED_ERROR;

        case SERVICE_CALL_RESOURCE_NOT_FOUND:
            // No streams found
            return STATUS_SERVICE_CALL_RESOURCE_NOT_FOUND_ERROR;

        case SERVICE_CALL_RESOURCE_IN_USE:
            // No streams found
            return STATUS_SERVICE_CALL_RESOURCE_IN_USE_ERROR;

        case SERVICE_CALL_REQUEST_TIMEOUT:
        case SERVICE_CALL_GATEWAY_TIMEOUT:
        case SERVICE_CALL_NETWORK_READ_TIMEOUT:
        case SERVICE_CALL_NETWORK_CONNECTION_TIMEOUT:
            // Timeout
            return STATUS_SERVICE_CALL_TIMEOUT_ERROR;

        case SERVICE_CALL_RESOURCE_DELETED:
            // Resource deleted
            return STATUS_SERVICE_CALL_RESOURCE_DELETED_ERROR;

        case SERVICE_CALL_CLIENT_LIMIT:
            // Client limit reached
            return STATUS_SERVICE_CALL_CLIENT_LIMIT_ERROR;

        case SERVICE_CALL_DEVICE_LIMIT:
            // Device limit reached
            return STATUS_SERVICE_CALL_DEVICE_LIMIT_ERROR;

        case SERVICE_CALL_STREAM_LIMIT:
            // Device limit reached
            return STATUS_SERVICE_CALL_STREAM_LIMIT_ERROR;

        case SERVICE_CALL_STREAM_AUTH_IN_GRACE_PERIOD:
            // We are still in a grace period, should be OK
            // Explicit fall-through
        case SERVICE_CALL_RESULT_OK:
            // All OK result
            return STATUS_SUCCESS;

            // ACK errors
        case SERVICE_CALL_RESULT_STREAM_READ_ERROR:
            return STATUS_ACK_ERR_STREAM_READ_ERROR;
        case SERVICE_CALL_RESULT_FRAGMENT_SIZE_REACHED:
            return STATUS_ACK_ERR_FRAGMENT_SIZE_REACHED;
        case SERVICE_CALL_RESULT_FRAGMENT_DURATION_REACHED:
            return STATUS_ACK_ERR_FRAGMENT_DURATION_REACHED;
        case SERVICE_CALL_RESULT_CONNECTION_DURATION_REACHED:
            return STATUS_ACK_ERR_CONNECTION_DURATION_REACHED;
        case SERVICE_CALL_RESULT_FRAGMENT_TIMECODE_NOT_MONOTONIC:
            return STATUS_ACK_ERR_FRAGMENT_TIMECODE_NOT_MONOTONIC;
        case SERVICE_CALL_RESULT_MULTI_TRACK_MKV:
            return STATUS_ACK_ERR_MULTI_TRACK_MKV;
        case SERVICE_CALL_RESULT_INVALID_MKV_DATA:
            return STATUS_ACK_ERR_INVALID_MKV_DATA;
        case SERVICE_CALL_RESULT_INVALID_PRODUCER_TIMESTAMP:
            return STATUS_ACK_ERR_INVALID_PRODUCER_TIMESTAMP;
        case SERVICE_CALL_RESULT_STREAM_NOT_ACTIVE:
            return STATUS_ACK_ERR_STREAM_NOT_ACTIVE;
        case SERVICE_CALL_RESULT_FRAGMENT_METADATA_LIMIT_REACHED:
            return STATUS_ACK_ERR_FRAGMENT_METADATA_LIMIT_REACHED;
        case SERVICE_CALL_RESULT_TRACK_NUMBER_MISMATCH:
            return STATUS_ACK_ERR_TRACK_NUMBER_MISMATCH;
        case SERVICE_CALL_RESULT_FRAMES_MISSING_FOR_TRACK:
            return STATUS_ACK_ERR_FRAMES_MISSING_FOR_TRACK;
        case SERVICE_CALL_RESULT_MORE_THAN_ALLOWED_TRACKS_FOUND:
            return STATUS_ACK_ERR_MORE_THAN_ALLOWED_TRACKS_FOUND;
        case SERVICE_CALL_RESULT_KMS_KEY_ACCESS_DENIED:
            return STATUS_ACK_ERR_KMS_KEY_ACCESS_DENIED;
        case SERVICE_CALL_RESULT_KMS_KEY_DISABLED:
            return STATUS_ACK_ERR_KMS_KEY_DISABLED;
        case SERVICE_CALL_RESULT_KMS_KEY_VALIDATION_ERROR:
            return STATUS_ACK_ERR_KMS_KEY_VALIDATION_ERROR;
        case SERVICE_CALL_RESULT_KMS_KEY_UNAVAILABLE:
            return STATUS_ACK_ERR_KMS_KEY_UNAVAILABLE;
        case SERVICE_CALL_RESULT_KMS_KEY_INVALID_USAGE:
            return STATUS_ACK_ERR_KMS_KEY_INVALID_USAGE;
        case SERVICE_CALL_RESULT_KMS_KEY_INVALID_STATE:
            return STATUS_ACK_ERR_KMS_KEY_INVALID_STATE;
        case SERVICE_CALL_RESULT_KMS_KEY_NOT_FOUND:
            return STATUS_ACK_ERR_KMS_KEY_NOT_FOUND;
        case SERVICE_CALL_RESULT_STREAM_DELETED:
            return STATUS_ACK_ERR_STREAM_DELETED;
        case SERVICE_CALL_RESULT_ACK_INTERNAL_ERROR:
            return STATUS_ACK_ERR_ACK_INTERNAL_ERROR;
        case SERVICE_CALL_RESULT_FRAGMENT_ARCHIVAL_ERROR:
            return STATUS_ACK_ERR_FRAGMENT_ARCHIVAL_ERROR;
        case SERVICE_CALL_RESULT_UNKNOWN_ACK_ERROR:
            return STATUS_ACK_ERR_UNKNOWN_ACK_ERROR;

        case SERVICE_CALL_UNKNOWN:
            // Explicit fall-through
        default:
            // Unknown error
            return STATUS_SERVICE_CALL_UNKOWN_ERROR;
    }
}