OLD | NEW |
| (Empty) |
1 // Copyright 2016 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_HTTP2_HPACK_HTTP2_HPACK_CONSTANTS_H_ | |
6 #define NET_HTTP2_HPACK_HTTP2_HPACK_CONSTANTS_H_ | |
7 | |
8 // Enum HpackEntryType identifies the 5 basic types of HPACK Block Entries. | |
9 // | |
10 // See the spec for details: | |
11 // https://http2.github.io/http2-spec/compression.html#rfc.section.6 | |
12 | |
13 #include <ostream> | |
14 #include <string> | |
15 | |
16 #include "net/base/net_export.h" | |
17 | |
18 namespace net { | |
19 | |
20 enum class HpackEntryType { | |
21 // Entry is an index into the static or dynamic table. Decoding it has no | |
22 // effect on the dynamic table. | |
23 kIndexedHeader, | |
24 | |
25 // The entry contains a literal value. The name may be either a literal or a | |
26 // reference to an entry in the static or dynamic table. | |
27 // The entry is added to the dynamic table after decoding. | |
28 kIndexedLiteralHeader, | |
29 | |
30 // The entry contains a literal value. The name may be either a literal or a | |
31 // reference to an entry in the static or dynamic table. | |
32 // The entry is not added to the dynamic table after decoding, but a proxy | |
33 // may choose to insert the entry into its dynamic table when forwarding | |
34 // to another endpoint. | |
35 kUnindexedLiteralHeader, | |
36 | |
37 // The entry contains a literal value. The name may be either a literal or a | |
38 // reference to an entry in the static or dynamic table. | |
39 // The entry is not added to the dynamic table after decoding, and a proxy | |
40 // must NOT insert the entry into its dynamic table when forwarding to another | |
41 // endpoint. | |
42 kNeverIndexedLiteralHeader, | |
43 | |
44 // Entry conveys the size limit of the dynamic table of the encoder to | |
45 // the decoder. May be used to flush the table by sending a zero and then | |
46 // resetting the size back up to the maximum that the encoder will use | |
47 // (within the limits of SETTINGS_HEADER_TABLE_SIZE sent by the | |
48 // decoder to the encoder, with the default of 4096 assumed). | |
49 kDynamicTableSizeUpdate, | |
50 }; | |
51 | |
52 // Returns the name of the enum member. | |
53 NET_EXPORT_PRIVATE std::string HpackEntryTypeToString(HpackEntryType v); | |
54 | |
55 // Inserts the name of the enum member into |out|. | |
56 NET_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& out, | |
57 HpackEntryType v); | |
58 | |
59 } // namespace net | |
60 | |
61 #endif // NET_HTTP2_HPACK_HTTP2_HPACK_CONSTANTS_H_ | |
OLD | NEW |