1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef NET_TOOLS_QUIC_SPDY_UTILS_H_ 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define NET_TOOLS_QUIC_SPDY_UTILS_H_ 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <string> 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "net/spdy/spdy_framer.h" 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "net/spdy/spdy_header_block.h" 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "net/spdy/spdy_protocol.h" 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "net/tools/balsa/balsa_headers.h" 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace net { 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace tools { 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class SpdyUtils { 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static std::string SerializeRequestHeaders( 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BalsaHeaders& request_headers); 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static std::string SerializeResponseHeaders( 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BalsaHeaders& response_headers); 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static bool FillBalsaRequestHeaders(const SpdyHeaderBlock& header_block, 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) BalsaHeaders* request_headers); 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static bool FillBalsaResponseHeaders(const SpdyHeaderBlock& header_block, 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) BalsaHeaders* response_headers); 31b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 32b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) static SpdyHeaderBlock RequestHeadersToSpdyHeaders( 33b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) const BalsaHeaders& request_headers); 34b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 35b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) static SpdyHeaderBlock ResponseHeadersToSpdyHeaders( 36b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) const BalsaHeaders& response_headers); 37b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 38b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) static std::string SerializeUncompressedHeaders( 39b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) const SpdyHeaderBlock& headers); 400529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch private: 420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch DISALLOW_COPY_AND_ASSIGN(SpdyUtils); 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace tools 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace net 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif // NET_TOOLS_QUIC_SPDY_UTILS_H_ 49