Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
grpc_core::HPackParser::Parser Class Reference

Public Member Functions

bool Parse ()
 
 Parser (Input *input, grpc_metadata_batch *metadata_buffer, uint32_t metadata_size_limit, HPackTable *table, uint8_t *dynamic_table_updates_allowed, uint32_t *frame_length, LogInfo log_info)
 
bool SkipPriority ()
 

Private Member Functions

bool EmitHeader (const HPackTable::Memento &md)
 
bool FinishHeaderAndAddToTable (absl::optional< HPackTable::Memento > md)
 
bool FinishHeaderOmitFromTable (absl::optional< HPackTable::Memento > md)
 
bool FinishHeaderOmitFromTable (const HPackTable::Memento &md)
 
bool FinishIndexed (absl::optional< uint32_t > index)
 
bool FinishMaxTableSize (absl::optional< uint32_t > size)
 
GPR_ATTRIBUTE_NOINLINE bool HandleMetadataSizeLimitExceeded (const HPackTable::Memento &)
 
template<typename R >
InvalidHPackIndexError (uint32_t index, R result)
 
void GPR_ATTRIBUTE_NOINLINE LogHeader (const HPackTable::Memento &memento)
 
absl::optional< HPackTable::MementoParseIdxKey (uint32_t index)
 
absl::optional< HPackTable::MementoParseLiteralKey ()
 
absl::optional< StringParseValueString (bool is_binary)
 
absl::optional< HPackTable::MementoParseVarIdxKey (uint32_t offset)
 

Static Private Member Functions

static void ReportMetadataParseError (absl::string_view key, absl::string_view error, absl::string_view value)
 

Private Attributes

uint8_t *const dynamic_table_updates_allowed_
 
uint32_t *const frame_length_
 
Input *const input_
 
const LogInfo log_info_
 
grpc_metadata_batch *const metadata_buffer_
 
const uint32_t metadata_size_limit_
 
HPackTable *const table_
 

Detailed Description

Definition at line 935 of file hpack_parser.cc.

Constructor & Destructor Documentation

◆ Parser()

grpc_core::HPackParser::Parser::Parser ( Input input,
grpc_metadata_batch metadata_buffer,
uint32_t  metadata_size_limit,
HPackTable table,
uint8_t dynamic_table_updates_allowed,
uint32_t frame_length,
LogInfo  log_info 
)
inline

Definition at line 937 of file hpack_parser.cc.

Member Function Documentation

◆ EmitHeader()

bool grpc_core::HPackParser::Parser::EmitHeader ( const HPackTable::Memento md)
inlineprivate

Definition at line 1070 of file hpack_parser.cc.

◆ FinishHeaderAndAddToTable()

bool grpc_core::HPackParser::Parser::FinishHeaderAndAddToTable ( absl::optional< HPackTable::Memento md)
inlineprivate

Definition at line 1082 of file hpack_parser.cc.

◆ FinishHeaderOmitFromTable() [1/2]

bool grpc_core::HPackParser::Parser::FinishHeaderOmitFromTable ( absl::optional< HPackTable::Memento md)
inlineprivate

Definition at line 1100 of file hpack_parser.cc.

◆ FinishHeaderOmitFromTable() [2/2]

bool grpc_core::HPackParser::Parser::FinishHeaderOmitFromTable ( const HPackTable::Memento md)
inlineprivate

Definition at line 1106 of file hpack_parser.cc.

◆ FinishIndexed()

bool grpc_core::HPackParser::Parser::FinishIndexed ( absl::optional< uint32_t index)
inlineprivate

Definition at line 1165 of file hpack_parser.cc.

◆ FinishMaxTableSize()

bool grpc_core::HPackParser::Parser::FinishMaxTableSize ( absl::optional< uint32_t size)
inlineprivate

Definition at line 1177 of file hpack_parser.cc.

◆ HandleMetadataSizeLimitExceeded()

GPR_ATTRIBUTE_NOINLINE bool grpc_core::HPackParser::Parser::HandleMetadataSizeLimitExceeded ( const HPackTable::Memento )
inlineprivate

Definition at line 1214 of file hpack_parser.cc.

◆ InvalidHPackIndexError()

template<typename R >
R grpc_core::HPackParser::Parser::InvalidHPackIndexError ( uint32_t  index,
result 
)
inlineprivate

Definition at line 1199 of file hpack_parser.cc.

◆ LogHeader()

void GPR_ATTRIBUTE_NOINLINE grpc_core::HPackParser::Parser::LogHeader ( const HPackTable::Memento memento)
inlineprivate

Definition at line 1053 of file hpack_parser.cc.

◆ Parse()

bool grpc_core::HPackParser::Parser::Parse ( )
inline

Definition at line 956 of file hpack_parser.cc.

◆ ParseIdxKey()

absl::optional<HPackTable::Memento> grpc_core::HPackParser::Parser::ParseIdxKey ( uint32_t  index)
inlineprivate

Definition at line 1134 of file hpack_parser.cc.

◆ ParseLiteralKey()

absl::optional<HPackTable::Memento> grpc_core::HPackParser::Parser::ParseLiteralKey ( )
inlineprivate

Definition at line 1115 of file hpack_parser.cc.

◆ ParseValueString()

absl::optional<String> grpc_core::HPackParser::Parser::ParseValueString ( bool  is_binary)
inlineprivate

Definition at line 1156 of file hpack_parser.cc.

◆ ParseVarIdxKey()

absl::optional<HPackTable::Memento> grpc_core::HPackParser::Parser::ParseVarIdxKey ( uint32_t  offset)
inlineprivate

Definition at line 1149 of file hpack_parser.cc.

◆ ReportMetadataParseError()

static void grpc_core::HPackParser::Parser::ReportMetadataParseError ( absl::string_view  key,
absl::string_view  error,
absl::string_view  value 
)
inlinestaticprivate

Definition at line 1231 of file hpack_parser.cc.

◆ SkipPriority()

bool grpc_core::HPackParser::Parser::SkipPriority ( )
inline

Definition at line 950 of file hpack_parser.cc.

Member Data Documentation

◆ dynamic_table_updates_allowed_

uint8_t* const grpc_core::HPackParser::Parser::dynamic_table_updates_allowed_
private

Definition at line 1242 of file hpack_parser.cc.

◆ frame_length_

uint32_t* const grpc_core::HPackParser::Parser::frame_length_
private

Definition at line 1243 of file hpack_parser.cc.

◆ input_

Input* const grpc_core::HPackParser::Parser::input_
private

Definition at line 1239 of file hpack_parser.cc.

◆ log_info_

const LogInfo grpc_core::HPackParser::Parser::log_info_
private

Definition at line 1245 of file hpack_parser.cc.

◆ metadata_buffer_

grpc_metadata_batch* const grpc_core::HPackParser::Parser::metadata_buffer_
private

Definition at line 1240 of file hpack_parser.cc.

◆ metadata_size_limit_

const uint32_t grpc_core::HPackParser::Parser::metadata_size_limit_
private

Definition at line 1244 of file hpack_parser.cc.

◆ table_

HPackTable* const grpc_core::HPackParser::Parser::table_
private

Definition at line 1241 of file hpack_parser.cc.


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


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