15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NET_SPDY_SPDY_HEADER_BLOCK_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NET_SPDY_SPDY_HEADER_BLOCK_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <map> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/base/net_export.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/base/net_log.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A data structure for holding a set of headers from either a 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// SYN_STREAM or SYN_REPLY frame. 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef std::map<std::string, std::string> SpdyHeaderBlock; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Converts a SpdyHeaderBlock into NetLog event parameters. Caller takes 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ownership of returned value. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NET_EXPORT base::Value* SpdyHeaderBlockNetLogCallback( 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const SpdyHeaderBlock* headers, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetLog::LogLevel log_level); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Converts NetLog event parameters into a SPDY header block and writes them 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to |headers|. |event_param| must have been created by 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// SpdyHeaderBlockNetLogCallback. On failure, returns false and clears 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |headers|. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NET_EXPORT bool SpdyHeaderBlockFromNetLogParam( 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Value* event_param, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SpdyHeaderBlock* headers); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace net 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // NET_SPDY_SPDY_HEADER_BLOCK_H_ 37