1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "net/quic/quic_http_utils.h"
6
7namespace net {
8
9QuicPriority ConvertRequestPriorityToQuicPriority(
10    const RequestPriority priority) {
11  DCHECK_GE(priority, MINIMUM_PRIORITY);
12  DCHECK_LE(priority, MAXIMUM_PRIORITY);
13  return static_cast<QuicPriority>(HIGHEST - priority);
14}
15
16NET_EXPORT_PRIVATE RequestPriority ConvertQuicPriorityToRequestPriority(
17    QuicPriority priority) {
18  // Handle invalid values gracefully.
19  return (priority >= 5) ?
20      IDLE : static_cast<RequestPriority>(HIGHEST - priority);
21}
22
23base::Value* QuicRequestNetLogCallback(
24    QuicStreamId stream_id,
25    const SpdyHeaderBlock* headers,
26    QuicPriority priority,
27    NetLog::LogLevel log_level) {
28  base::DictionaryValue* dict = static_cast<base::DictionaryValue*>(
29      SpdyHeaderBlockNetLogCallback(headers, log_level));
30  dict->SetInteger("quic_priority", static_cast<int>(priority));
31  dict->SetInteger("quic_stream_id", static_cast<int>(stream_id));
32  return dict;
33}
34
35}  // namespace net
36