spdy_header_block.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1d2bb03207523e55aa2423570bcaaad03e779450cHoward Hinnant// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// Use of this source code is governed by a BSD-style license that can be 3bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// found in the LICENSE file. 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 5bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef NET_SPDY_SPDY_HEADER_BLOCK_H_ 6bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#define NET_SPDY_SPDY_HEADER_BLOCK_H_ 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <map> 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <string> 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "net/base/net_export.h" 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "net/base/net_log.h" 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantnamespace net { 15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// A data structure for holding a set of headers from either a 17d2bb03207523e55aa2423570bcaaad03e779450cHoward Hinnant// SYN_STREAM or SYN_REPLY frame. 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnanttypedef std::map<std::string, std::string> SpdyHeaderBlock; 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// Converts a SpdyHeaderBlock into NetLog event parameters. Caller takes 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// ownership of returned value. 22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard HinnantNET_EXPORT base::Value* SpdyHeaderBlockNetLogCallback( 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const SpdyHeaderBlock* headers, 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant NetLog::LogLevel log_level); 25a535ffd99d3702ab065647e28e83c2b7d720be3dChris Lattner 26a535ffd99d3702ab065647e28e83c2b7d720be3dChris Lattner// Converts NetLog event parameters into a SPDY header block and writes them 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// to |headers|. |event_param| must have been created by 2876e1ffc6036a7e772827228e4626280caddbc354Howard Hinnant// SpdyHeaderBlockNetLogCallback. On failure, returns false and clears 2976e1ffc6036a7e772827228e4626280caddbc354Howard Hinnant// |headers|. 30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard HinnantNET_EXPORT bool SpdyHeaderBlockFromNetLogParam( 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const base::Value* event_param, 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant SpdyHeaderBlock* headers); 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} // namespace net 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif // NET_SPDY_SPDY_HEADER_BLOCK_H_ 37d2bb03207523e55aa2423570bcaaad03e779450cHoward Hinnant