Go to the documentation of this file.
19 #ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_ENCODER_H
20 #define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_ENCODER_H
30 #include "absl/strings/match.h"
31 #include "absl/strings/string_view.h"
76 template <
typename HeaderSet>
80 headers.Encode(&framer);
108 if (
slice.empty())
return;
112 template <
typename Which>
size_t output_length_at_start_of_frame
HPackCompressor()=default
uint32_t content_type_index_
CompressionAlgorithmSet grpc_accept_encoding_
uint32_t grpc_accept_encoding_index_
void EnsureSpace(size_t need_bytes)
grpc_compression_algorithm
static Slice FromStaticString(const char *s)
uint32_t user_agent_index_
std::vector< ValueIndex > values_
~HPackCompressor()=default
static constexpr uint32_t kNumCachedGrpcStatusValues
static constexpr uint32_t kMaxTableSize
void EmitLitHdrWithNonBinaryStringKeyNotIdx(Slice key_slice, Slice value_slice)
void EncodeHeaders(const EncodeHeaderOptions &options, const HeaderSet &headers, grpc_slice_buffer *output)
void Encode(Which, const typename Which::ValueType &value)
uint32_t cached_grpc_encoding_[GRPC_COMPRESS_ALGORITHMS_COUNT]
grpc_core::TraceFlag grpc_http_trace
uint32_t cached_grpc_status_[kNumCachedGrpcStatusValues]
void EmitLitHdrWithBinaryStringKeyNotIdx(Slice key_slice, Slice value_slice)
void EmitTo(absl::string_view key, const Slice &value, Framer *framer)
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
Framer & operator=(const Framer &)=delete
static constexpr size_t kNumFilterValues
uint8_t * AddTiny(size_t len)
uint32_t max_usable_size_
SliceIndex authority_index_
size_t CurrentFrameSize() const
void SetMaxTableSize(uint32_t max_table_size)
void EncodeIndexedKeyWithBinaryValue(uint32_t *index, absl::string_view key, Slice value)
ValueType
Type of the value held by a Value object.
grpc_transport_one_way_stats *const stats_
void EmitLitHdrWithNonBinaryStringKeyIncIdx(Slice key_slice, Slice value_slice)
void FinishFrame(bool is_header_boundary)
void SetMaxUsableSize(uint32_t max_table_size)
uint32_t grpc_tags_bin_index_
uint32_t grpc_trace_bin_index_
const size_t max_frame_size_
void Encode(GrpcMessageMetadata, const Slice &slice)
@ GRPC_COMPRESS_ALGORITHMS_COUNT
void EncodeAlwaysIndexed(uint32_t *index, absl::string_view key, Slice value, uint32_t transport_length)
const bool use_true_binary_metadata_
static constexpr uint32_t kInitialTableSize
uint32_t test_only_table_size() const
ValueIndex(Slice value, uint32_t index)
grpc_slice_buffer *const output_
void AdvertiseTableSizeChange()
const bool is_end_of_stream_
std::vector< PreviousTimeout > previous_timeouts_
HPackCompressor *const compressor_
bool advertise_table_size_change_
uint32_t test_only_table_size() const
Framer(const EncodeHeaderOptions &options, HPackCompressor *compressor, grpc_slice_buffer *output)
bool EndsWith(absl::string_view text, absl::string_view suffix) noexcept
const uint32_t stream_id_
void EmitLitHdrWithBinaryStringKeyIncIdx(Slice key_slice, Slice value_slice)
void EmitIndexed(uint32_t index)
void Encode(const Slice &key, const Slice &value)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:13