OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_HPACK_CONSTANTS_H_ | 5 #ifndef NET_SPDY_HPACK_CONSTANTS_H_ |
6 #define NET_SPDY_HPACK_CONSTANTS_H_ | 6 #define NET_SPDY_HPACK_CONSTANTS_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 | 54 |
55 // 7.2.1: Opcode for a literal header field with incremental indexing. | 55 // 7.2.1: Opcode for a literal header field with incremental indexing. |
56 const HpackPrefix kLiteralIncrementalIndexOpcode = { 0x1, 2 }; | 56 const HpackPrefix kLiteralIncrementalIndexOpcode = { 0x1, 2 }; |
57 | 57 |
58 // 7.2.2: Opcode for a literal header field without indexing. | 58 // 7.2.2: Opcode for a literal header field without indexing. |
59 const HpackPrefix kLiteralNoIndexOpcode = { 0x0, 4 }; | 59 const HpackPrefix kLiteralNoIndexOpcode = { 0x0, 4 }; |
60 | 60 |
61 // 7.2.3: Opcode for a literal header field which is never indexed. | 61 // 7.2.3: Opcode for a literal header field which is never indexed. |
62 const HpackPrefix kLiteralNeverIndexOpcode = { 0x1, 4 }; | 62 const HpackPrefix kLiteralNeverIndexOpcode = { 0x1, 4 }; |
63 | 63 |
64 // 7.3: Opcode for an encoding context update. | 64 // 7.3: Opcode for maximum header table size update. Begins a varint-encoded |
65 const HpackPrefix kEncodingContextOpcode = { 0x1, 3 }; | 65 // table size with a 5-bit prefix. |
66 | 66 const HpackPrefix kHeaderTableSizeUpdateOpcode = { 0x1, 3 }; |
67 // 7.3: Flag following an |kEncodingContextOpcode|, which indicates | |
68 // the reference set should be cleared. | |
69 const HpackPrefix kEncodingContextEmptyReferenceSet = { 0x10, 5 }; | |
70 | |
71 // 7.3: Flag following an |kEncodingContextOpcode|, which indicates | |
72 // the encoder is using a new maximum headers table size. Begins a | |
73 // varint-encoded table size with a 4-bit prefix. | |
74 const HpackPrefix kEncodingContextNewMaximumSize = { 0x0, 1 }; | |
75 | 67 |
76 // Returns symbol code table from "Appendix C. Huffman Codes". | 68 // Returns symbol code table from "Appendix C. Huffman Codes". |
77 NET_EXPORT_PRIVATE std::vector<HpackHuffmanSymbol> HpackHuffmanCode(); | 69 NET_EXPORT_PRIVATE std::vector<HpackHuffmanSymbol> HpackHuffmanCode(); |
78 | 70 |
79 // Returns a HpackHuffmanTable instance initialized with |kHpackHuffmanCode|. | 71 // Returns a HpackHuffmanTable instance initialized with |kHpackHuffmanCode|. |
80 // The instance is read-only, has static lifetime, and is safe to share amoung | 72 // The instance is read-only, has static lifetime, and is safe to share amoung |
81 // threads. This function is thread-safe. | 73 // threads. This function is thread-safe. |
82 NET_EXPORT_PRIVATE const HpackHuffmanTable& ObtainHpackHuffmanTable(); | 74 NET_EXPORT_PRIVATE const HpackHuffmanTable& ObtainHpackHuffmanTable(); |
83 | 75 |
84 } // namespace net | 76 } // namespace net |
85 | 77 |
86 #endif // NET_SPDY_HPACK_CONSTANTS_H_ | 78 #endif // NET_SPDY_HPACK_CONSTANTS_H_ |
OLD | NEW |