1// Copyright (c) 2010 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#ifndef NET_SPDY_SPDY_HTTP_UTILS_H_ 6#define NET_SPDY_SPDY_HTTP_UTILS_H_ 7#pragma once 8 9#include "net/base/request_priority.h" 10#include "net/spdy/spdy_framer.h" 11 12namespace net { 13 14class HttpResponseInfo; 15struct HttpRequestInfo; 16class HttpRequestHeaders; 17 18// Convert a SpdyHeaderBlock into an HttpResponseInfo. 19// |headers| input parameter with the SpdyHeaderBlock. 20// |info| output parameter for the HttpResponseInfo. 21// Returns true if successfully converted. False if the SpdyHeaderBlock is 22// incomplete (e.g. missing 'status' or 'version'). 23bool SpdyHeadersToHttpResponse(const spdy::SpdyHeaderBlock& headers, 24 HttpResponseInfo* response); 25 26// Create a SpdyHeaderBlock for a Spdy SYN_STREAM Frame from 27// HttpRequestInfo and HttpRequestHeaders. 28void CreateSpdyHeadersFromHttpRequest(const HttpRequestInfo& info, 29 const HttpRequestHeaders& request_headers, 30 spdy::SpdyHeaderBlock* headers, 31 bool direct); 32 33int ConvertRequestPriorityToSpdyPriority(RequestPriority priority); 34 35} // namespace net 36 37#endif // NET_SPDY_SPDY_HTTP_UTILS_H_ 38