| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef NET_SPDY_SPDY_HEADER_BLOCK_H_ | 5 #ifndef NET_SPDY_SPDY_HEADER_BLOCK_H_ |
| 6 #define NET_SPDY_SPDY_HEADER_BLOCK_H_ | 6 #define NET_SPDY_SPDY_HEADER_BLOCK_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 // Under the hood, this data structure uses large, contiguous blocks of memory | 28 // Under the hood, this data structure uses large, contiguous blocks of memory |
| 29 // to store names and values. Lookups may be performed with StringPiece keys, | 29 // to store names and values. Lookups may be performed with StringPiece keys, |
| 30 // and values are returned as StringPieces (via StringPieceProxy, below). | 30 // and values are returned as StringPieces (via StringPieceProxy, below). |
| 31 // Value StringPieces are valid as long as the SpdyHeaderBlock exists; allocated | 31 // Value StringPieces are valid as long as the SpdyHeaderBlock exists; allocated |
| 32 // memory is never freed until SpdyHeaderBlock's destruction. | 32 // memory is never freed until SpdyHeaderBlock's destruction. |
| 33 // | 33 // |
| 34 // This implementation does not make much of an effort to minimize wasted space. | 34 // This implementation does not make much of an effort to minimize wasted space. |
| 35 // It's expected that keys are rarely deleted from a SpdyHeaderBlock. | 35 // It's expected that keys are rarely deleted from a SpdyHeaderBlock. |
| 36 class NET_EXPORT SpdyHeaderBlock { | 36 class NET_EXPORT SpdyHeaderBlock { |
| 37 private: | 37 private: |
| 38 using MapType = linked_hash_map<base::StringPiece, base::StringPiece>; | 38 using MapType = linked_hash_map<base::StringPiece, |
| 39 base::StringPiece, |
| 40 base::StringPieceHash>; |
| 39 class Storage; | 41 class Storage; |
| 40 | 42 |
| 41 public: | 43 public: |
| 42 using iterator = MapType::iterator; | 44 using iterator = MapType::iterator; |
| 43 using const_iterator = MapType::const_iterator; | 45 using const_iterator = MapType::const_iterator; |
| 44 using value_type = MapType::value_type; | 46 using value_type = MapType::value_type; |
| 45 using reverse_iterator = MapType::reverse_iterator; | 47 using reverse_iterator = MapType::reverse_iterator; |
| 46 | 48 |
| 47 class StringPieceProxy; | 49 class StringPieceProxy; |
| 48 | 50 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 // to |headers|. |event_param| must have been created by | 137 // to |headers|. |event_param| must have been created by |
| 136 // SpdyHeaderBlockNetLogCallback. On failure, returns false and clears | 138 // SpdyHeaderBlockNetLogCallback. On failure, returns false and clears |
| 137 // |headers|. | 139 // |headers|. |
| 138 NET_EXPORT bool SpdyHeaderBlockFromNetLogParam( | 140 NET_EXPORT bool SpdyHeaderBlockFromNetLogParam( |
| 139 const base::Value* event_param, | 141 const base::Value* event_param, |
| 140 SpdyHeaderBlock* headers); | 142 SpdyHeaderBlock* headers); |
| 141 | 143 |
| 142 } // namespace net | 144 } // namespace net |
| 143 | 145 |
| 144 #endif // NET_SPDY_SPDY_HEADER_BLOCK_H_ | 146 #endif // NET_SPDY_SPDY_HEADER_BLOCK_H_ |
| OLD | NEW |