spdy_header_block.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
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_SPDY_SPDY_HEADER_BLOCK_H_
6#define NET_SPDY_SPDY_HEADER_BLOCK_H_
7
8#include <map>
9#include <string>
10
11#include "net/base/net_export.h"
12#include "net/base/net_log.h"
13
14namespace net {
15
16// A data structure for holding a set of headers from either a
17// SYN_STREAM or SYN_REPLY frame.
18typedef std::map<std::string, std::string> SpdyHeaderBlock;
19
20// Converts a SpdyHeaderBlock into NetLog event parameters.  Caller takes
21// ownership of returned value.
22NET_EXPORT base::Value* SpdyHeaderBlockNetLogCallback(
23    const SpdyHeaderBlock* headers,
24    NetLog::LogLevel log_level);
25
26// Converts NetLog event parameters into a SPDY header block and writes them
27// to |headers|.  |event_param| must have been created by
28// SpdyHeaderBlockNetLogCallback.  On failure, returns false and clears
29// |headers|.
30NET_EXPORT bool SpdyHeaderBlockFromNetLogParam(
31    const base::Value* event_param,
32    SpdyHeaderBlock* headers);
33
34}  // namespace net
35
36#endif  // NET_SPDY_SPDY_HEADER_BLOCK_H_
37