1// Copyright (c) 2012 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_TOOLS_QUIC_SPDY_UTILS_H_
6#define NET_TOOLS_QUIC_SPDY_UTILS_H_
7
8#include <string>
9
10#include "net/spdy/spdy_framer.h"
11#include "net/spdy/spdy_header_block.h"
12#include "net/spdy/spdy_protocol.h"
13#include "net/tools/balsa/balsa_headers.h"
14
15namespace net {
16namespace tools {
17
18class SpdyUtils {
19 public:
20  static std::string SerializeRequestHeaders(
21      const BalsaHeaders& request_headers);
22
23  static std::string SerializeResponseHeaders(
24      const BalsaHeaders& response_headers);
25
26  static bool FillBalsaRequestHeaders(const SpdyHeaderBlock& header_block,
27                                      BalsaHeaders* request_headers);
28
29  static bool FillBalsaResponseHeaders(const SpdyHeaderBlock& header_block,
30                                       BalsaHeaders* response_headers);
31
32  static SpdyHeaderBlock RequestHeadersToSpdyHeaders(
33      const BalsaHeaders& request_headers);
34
35  static SpdyHeaderBlock ResponseHeadersToSpdyHeaders(
36      const BalsaHeaders& response_headers);
37
38  static std::string SerializeUncompressedHeaders(
39      const SpdyHeaderBlock& headers);
40
41 private:
42  DISALLOW_COPY_AND_ASSIGN(SpdyUtils);
43};
44
45}  // namespace tools
46}  // namespace net
47
48#endif  // NET_TOOLS_QUIC_SPDY_UTILS_H_
49