mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
62 lines
2.3 KiB
C
62 lines
2.3 KiB
C
|
// Copyright 2016 The Chromium Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
#ifndef NET_HTTP2_HPACK_HTTP2_HPACK_CONSTANTS_H_
|
||
|
#define NET_HTTP2_HPACK_HTTP2_HPACK_CONSTANTS_H_
|
||
|
|
||
|
// Enum HpackEntryType identifies the 5 basic types of HPACK Block Entries.
|
||
|
//
|
||
|
// See the spec for details:
|
||
|
// https://http2.github.io/http2-spec/compression.html#rfc.section.6
|
||
|
|
||
|
#include <ostream>
|
||
|
|
||
|
#include "net/http2/platform/api/http2_export.h"
|
||
|
#include "net/http2/platform/api/http2_string.h"
|
||
|
|
||
|
namespace net {
|
||
|
|
||
|
enum class HpackEntryType {
|
||
|
// Entry is an index into the static or dynamic table. Decoding it has no
|
||
|
// effect on the dynamic table.
|
||
|
kIndexedHeader,
|
||
|
|
||
|
// The entry contains a literal value. The name may be either a literal or a
|
||
|
// reference to an entry in the static or dynamic table.
|
||
|
// The entry is added to the dynamic table after decoding.
|
||
|
kIndexedLiteralHeader,
|
||
|
|
||
|
// The entry contains a literal value. The name may be either a literal or a
|
||
|
// reference to an entry in the static or dynamic table.
|
||
|
// The entry is not added to the dynamic table after decoding, but a proxy
|
||
|
// may choose to insert the entry into its dynamic table when forwarding
|
||
|
// to another endpoint.
|
||
|
kUnindexedLiteralHeader,
|
||
|
|
||
|
// The entry contains a literal value. The name may be either a literal or a
|
||
|
// reference to an entry in the static or dynamic table.
|
||
|
// The entry is not added to the dynamic table after decoding, and a proxy
|
||
|
// must NOT insert the entry into its dynamic table when forwarding to another
|
||
|
// endpoint.
|
||
|
kNeverIndexedLiteralHeader,
|
||
|
|
||
|
// Entry conveys the size limit of the dynamic table of the encoder to
|
||
|
// the decoder. May be used to flush the table by sending a zero and then
|
||
|
// resetting the size back up to the maximum that the encoder will use
|
||
|
// (within the limits of SETTINGS_HEADER_TABLE_SIZE sent by the
|
||
|
// decoder to the encoder, with the default of 4096 assumed).
|
||
|
kDynamicTableSizeUpdate,
|
||
|
};
|
||
|
|
||
|
// Returns the name of the enum member.
|
||
|
HTTP2_EXPORT_PRIVATE Http2String HpackEntryTypeToString(HpackEntryType v);
|
||
|
|
||
|
// Inserts the name of the enum member into |out|.
|
||
|
HTTP2_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& out,
|
||
|
HpackEntryType v);
|
||
|
|
||
|
} // namespace net
|
||
|
|
||
|
#endif // NET_HTTP2_HPACK_HTTP2_HPACK_CONSTANTS_H_
|