Classes | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
grpc_core::HPackCompressor::Framer Class Reference

#include <hpack_encoder.h>

Classes

struct  FramePrefix
 

Public Member Functions

void Encode (const Slice &key, const Slice &value)
 
void Encode (ContentTypeMetadata, ContentTypeMetadata::ValueType value)
 
void Encode (GrpcAcceptEncodingMetadata, CompressionAlgorithmSet value)
 
void Encode (GrpcEncodingMetadata, grpc_compression_algorithm value)
 
void Encode (GrpcMessageMetadata, const Slice &slice)
 
void Encode (GrpcStatusMetadata, grpc_status_code status)
 
void Encode (GrpcTagsBinMetadata, const Slice &slice)
 
void Encode (GrpcTimeoutMetadata, Timestamp deadline)
 
void Encode (GrpcTraceBinMetadata, const Slice &slice)
 
void Encode (HttpAuthorityMetadata, const Slice &value)
 
void Encode (HttpMethodMetadata, HttpMethodMetadata::ValueType method)
 
void Encode (HttpPathMetadata, const Slice &value)
 
void Encode (HttpSchemeMetadata, HttpSchemeMetadata::ValueType value)
 
void Encode (HttpStatusMetadata, uint32_t status)
 
void Encode (TeMetadata, TeMetadata::ValueType value)
 
void Encode (UserAgentMetadata, const Slice &slice)
 
template<typename Which >
void Encode (Which, const typename Which::ValueType &value)
 
 Framer (const EncodeHeaderOptions &options, HPackCompressor *compressor, grpc_slice_buffer *output)
 
 Framer (const Framer &)=delete
 
Frameroperator= (const Framer &)=delete
 
 ~Framer ()
 

Private Member Functions

void Add (Slice slice)
 
uint8_tAddTiny (size_t len)
 
void AdvertiseTableSizeChange ()
 
FramePrefix BeginFrame ()
 
size_t CurrentFrameSize () const
 
void EmitIndexed (uint32_t index)
 
void EmitLitHdrWithBinaryStringKeyIncIdx (Slice key_slice, Slice value_slice)
 
void EmitLitHdrWithBinaryStringKeyNotIdx (Slice key_slice, Slice value_slice)
 
void EmitLitHdrWithBinaryStringKeyNotIdx (uint32_t key_index, Slice value_slice)
 
void EmitLitHdrWithNonBinaryStringKeyIncIdx (Slice key_slice, Slice value_slice)
 
void EmitLitHdrWithNonBinaryStringKeyNotIdx (Slice key_slice, Slice value_slice)
 
void EncodeAlwaysIndexed (uint32_t *index, absl::string_view key, Slice value, uint32_t transport_length)
 
void EncodeIndexedKeyWithBinaryValue (uint32_t *index, absl::string_view key, Slice value)
 
void EnsureSpace (size_t need_bytes)
 
void FinishFrame (bool is_header_boundary)
 

Private Attributes

HPackCompressor *const compressor_
 
const bool is_end_of_stream_
 
bool is_first_frame_ = true
 
const size_t max_frame_size_
 
grpc_slice_buffer *const output_
 
FramePrefix prefix_
 
grpc_transport_one_way_stats *const stats_
 
const uint32_t stream_id_
 
const bool use_true_binary_metadata_
 

Friends

class SliceIndex
 

Detailed Description

Definition at line 83 of file hpack_encoder.h.

Constructor & Destructor Documentation

◆ Framer() [1/2]

grpc_core::HPackCompressor::Framer::Framer ( const EncodeHeaderOptions options,
HPackCompressor compressor,
grpc_slice_buffer output 
)

Definition at line 653 of file hpack_encoder.cc.

◆ ~Framer()

grpc_core::HPackCompressor::Framer::~Framer ( )
inline

Definition at line 87 of file hpack_encoder.h.

◆ Framer() [2/2]

grpc_core::HPackCompressor::Framer::Framer ( const Framer )
delete

Member Function Documentation

◆ Add()

void grpc_core::HPackCompressor::Framer::Add ( Slice  slice)
private

Definition at line 134 of file hpack_encoder.cc.

◆ AddTiny()

uint8_t * grpc_core::HPackCompressor::Framer::AddTiny ( size_t  len)
private

Definition at line 154 of file hpack_encoder.cc.

◆ AdvertiseTableSizeChange()

void grpc_core::HPackCompressor::Framer::AdvertiseTableSizeChange ( )
private

Definition at line 330 of file hpack_encoder.cc.

◆ BeginFrame()

HPackCompressor::Framer::FramePrefix grpc_core::HPackCompressor::Framer::BeginFrame ( )
private

Definition at line 115 of file hpack_encoder.cc.

◆ CurrentFrameSize()

size_t grpc_core::HPackCompressor::Framer::CurrentFrameSize ( ) const
private

Definition at line 79 of file hpack_encoder.cc.

◆ EmitIndexed()

void grpc_core::HPackCompressor::Framer::EmitIndexed ( uint32_t  index)
private

Definition at line 160 of file hpack_encoder.cc.

◆ EmitLitHdrWithBinaryStringKeyIncIdx()

void grpc_core::HPackCompressor::Framer::EmitLitHdrWithBinaryStringKeyIncIdx ( Slice  key_slice,
Slice  value_slice 
)
private

Definition at line 294 of file hpack_encoder.cc.

◆ EmitLitHdrWithBinaryStringKeyNotIdx() [1/2]

void grpc_core::HPackCompressor::Framer::EmitLitHdrWithBinaryStringKeyNotIdx ( Slice  key_slice,
Slice  value_slice 
)
private

Definition at line 282 of file hpack_encoder.cc.

◆ EmitLitHdrWithBinaryStringKeyNotIdx() [2/2]

void grpc_core::HPackCompressor::Framer::EmitLitHdrWithBinaryStringKeyNotIdx ( uint32_t  key_index,
Slice  value_slice 
)
private

Definition at line 306 of file hpack_encoder.cc.

◆ EmitLitHdrWithNonBinaryStringKeyIncIdx()

void grpc_core::HPackCompressor::Framer::EmitLitHdrWithNonBinaryStringKeyIncIdx ( Slice  key_slice,
Slice  value_slice 
)
private

Definition at line 270 of file hpack_encoder.cc.

◆ EmitLitHdrWithNonBinaryStringKeyNotIdx()

void grpc_core::HPackCompressor::Framer::EmitLitHdrWithNonBinaryStringKeyNotIdx ( Slice  key_slice,
Slice  value_slice 
)
private

Definition at line 318 of file hpack_encoder.cc.

◆ Encode() [1/17]

void grpc_core::HPackCompressor::Framer::Encode ( const Slice key,
const Slice value 
)

Definition at line 381 of file hpack_encoder.cc.

◆ Encode() [2/17]

void grpc_core::HPackCompressor::Framer::Encode ( ContentTypeMetadata  ,
ContentTypeMetadata::ValueType  value 
)

Definition at line 406 of file hpack_encoder.cc.

◆ Encode() [3/17]

void grpc_core::HPackCompressor::Framer::Encode ( GrpcAcceptEncodingMetadata  ,
CompressionAlgorithmSet  value 
)

Definition at line 617 of file hpack_encoder.cc.

◆ Encode() [4/17]

void grpc_core::HPackCompressor::Framer::Encode ( GrpcEncodingMetadata  ,
grpc_compression_algorithm  value 
)

Definition at line 593 of file hpack_encoder.cc.

◆ Encode() [5/17]

void grpc_core::HPackCompressor::Framer::Encode ( GrpcMessageMetadata  ,
const Slice slice 
)
inline

Definition at line 107 of file hpack_encoder.h.

◆ Encode() [6/17]

void grpc_core::HPackCompressor::Framer::Encode ( GrpcStatusMetadata  ,
grpc_status_code  status 
)

Definition at line 570 of file hpack_encoder.cc.

◆ Encode() [7/17]

void grpc_core::HPackCompressor::Framer::Encode ( GrpcTagsBinMetadata  ,
const Slice slice 
)

Definition at line 438 of file hpack_encoder.cc.

◆ Encode() [8/17]

void grpc_core::HPackCompressor::Framer::Encode ( GrpcTimeoutMetadata  ,
Timestamp  deadline 
)

Definition at line 524 of file hpack_encoder.cc.

◆ Encode() [9/17]

void grpc_core::HPackCompressor::Framer::Encode ( GrpcTraceBinMetadata  ,
const Slice slice 
)

Definition at line 433 of file hpack_encoder.cc.

◆ Encode() [10/17]

void grpc_core::HPackCompressor::Framer::Encode ( HttpAuthorityMetadata  ,
const Slice value 
)

Definition at line 393 of file hpack_encoder.cc.

◆ Encode() [11/17]

void grpc_core::HPackCompressor::Framer::Encode ( HttpMethodMetadata  ,
HttpMethodMetadata::ValueType  method 
)

Definition at line 477 of file hpack_encoder.cc.

◆ Encode() [12/17]

void grpc_core::HPackCompressor::Framer::Encode ( HttpPathMetadata  ,
const Slice value 
)

Definition at line 389 of file hpack_encoder.cc.

◆ Encode() [13/17]

void grpc_core::HPackCompressor::Framer::Encode ( HttpSchemeMetadata  ,
HttpSchemeMetadata::ValueType  value 
)

Definition at line 418 of file hpack_encoder.cc.

◆ Encode() [14/17]

void grpc_core::HPackCompressor::Framer::Encode ( HttpStatusMetadata  ,
uint32_t  status 
)

Definition at line 443 of file hpack_encoder.cc.

◆ Encode() [15/17]

void grpc_core::HPackCompressor::Framer::Encode ( TeMetadata  ,
TeMetadata::ValueType  value 
)

Definition at line 399 of file hpack_encoder.cc.

◆ Encode() [16/17]

void grpc_core::HPackCompressor::Framer::Encode ( UserAgentMetadata  ,
const Slice slice 
)

Definition at line 555 of file hpack_encoder.cc.

◆ Encode() [17/17]

template<typename Which >
void grpc_core::HPackCompressor::Framer::Encode ( Which  ,
const typename Which::ValueType &  value 
)
inline

Definition at line 113 of file hpack_encoder.h.

◆ EncodeAlwaysIndexed()

void grpc_core::HPackCompressor::Framer::EncodeAlwaysIndexed ( uint32_t index,
absl::string_view  key,
Slice  value,
uint32_t  transport_length 
)
private

Definition at line 498 of file hpack_encoder.cc.

◆ EncodeIndexedKeyWithBinaryValue()

void grpc_core::HPackCompressor::Framer::EncodeIndexedKeyWithBinaryValue ( uint32_t index,
absl::string_view  key,
Slice  value 
)
private

Definition at line 511 of file hpack_encoder.cc.

◆ EnsureSpace()

void grpc_core::HPackCompressor::Framer::EnsureSpace ( size_t  need_bytes)
private

Definition at line 126 of file hpack_encoder.cc.

◆ FinishFrame()

void grpc_core::HPackCompressor::Framer::FinishFrame ( bool  is_header_boundary)
private

Definition at line 87 of file hpack_encoder.cc.

◆ operator=()

Framer& grpc_core::HPackCompressor::Framer::operator= ( const Framer )
delete

Friends And Related Function Documentation

◆ SliceIndex

friend class SliceIndex
friend

Definition at line 125 of file hpack_encoder.h.

Member Data Documentation

◆ compressor_

HPackCompressor* const grpc_core::HPackCompressor::Framer::compressor_
private

Definition at line 170 of file hpack_encoder.h.

◆ is_end_of_stream_

const bool grpc_core::HPackCompressor::Framer::is_end_of_stream_
private

Definition at line 165 of file hpack_encoder.h.

◆ is_first_frame_

bool grpc_core::HPackCompressor::Framer::is_first_frame_ = true
private

Definition at line 163 of file hpack_encoder.h.

◆ max_frame_size_

const size_t grpc_core::HPackCompressor::Framer::max_frame_size_
private

Definition at line 162 of file hpack_encoder.h.

◆ output_

grpc_slice_buffer* const grpc_core::HPackCompressor::Framer::output_
private

Definition at line 168 of file hpack_encoder.h.

◆ prefix_

FramePrefix grpc_core::HPackCompressor::Framer::prefix_
private

Definition at line 171 of file hpack_encoder.h.

◆ stats_

grpc_transport_one_way_stats* const grpc_core::HPackCompressor::Framer::stats_
private

Definition at line 169 of file hpack_encoder.h.

◆ stream_id_

const uint32_t grpc_core::HPackCompressor::Framer::stream_id_
private

Definition at line 167 of file hpack_encoder.h.

◆ use_true_binary_metadata_

const bool grpc_core::HPackCompressor::Framer::use_true_binary_metadata_
private

Definition at line 164 of file hpack_encoder.h.


The documentation for this class was generated from the following files:


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:36