GRPC Core  9.0.0
Macros | Typedefs | Enumerations | Functions | Variables
hpack_parser.cc File Reference
#include <grpc/support/port_platform.h>
#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <assert.h>
#include <stddef.h>
#include <string.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
#include "src/core/ext/transport/chttp2/transport/bin_encoder.h"
#include "src/core/lib/debug/stats.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
#include "src/core/lib/surface/validate_metadata.h"
#include "src/core/lib/transport/http2_errors.h"

Macros

#define MAX_PARSE_LENGTH   1024
 

Typedefs

typedef void(* maybe_complete_func_type) (grpc_chttp2_transport *t, grpc_chttp2_stream *s)
 

Enumerations

enum  binary_state {
  NOT_BINARY , BINARY_BEGIN , B64_BYTE0 , B64_BYTE1 ,
  B64_BYTE2 , B64_BYTE3
}
 
enum  first_byte_type {
  INDEXED_FIELD , INDEXED_FIELD_X , LITHDR_INCIDX , LITHDR_INCIDX_X ,
  LITHDR_INCIDX_V , LITHDR_NOTIDX , LITHDR_NOTIDX_X , LITHDR_NOTIDX_V ,
  LITHDR_NVRIDX , LITHDR_NVRIDX_X , LITHDR_NVRIDX_V , MAX_TBL_SIZE ,
  MAX_TBL_SIZE_X , ILLEGAL
}
 

Functions

void grpc_chttp2_hpack_parser_init (grpc_chttp2_hpack_parser *p)
 
void grpc_chttp2_hpack_parser_set_has_priority (grpc_chttp2_hpack_parser *p)
 
void grpc_chttp2_hpack_parser_destroy (grpc_chttp2_hpack_parser *p)
 
grpc_errorgrpc_chttp2_hpack_parser_parse (grpc_chttp2_hpack_parser *p, const grpc_slice &slice)
 
grpc_errorgrpc_chttp2_header_parser_parse (void *hpack_parser, grpc_chttp2_transport *t, grpc_chttp2_stream *s, const grpc_slice &slice, int is_last)
 

Variables

grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_hpack_parser (false, "chttp2_hpack_parser")
 

Macro Definition Documentation

◆ MAX_PARSE_LENGTH

#define MAX_PARSE_LENGTH   1024

Typedef Documentation

◆ maybe_complete_func_type

typedef void(* maybe_complete_func_type) (grpc_chttp2_transport *t, grpc_chttp2_stream *s)

Enumeration Type Documentation

◆ binary_state

Enumerator
NOT_BINARY 
BINARY_BEGIN 
B64_BYTE0 
B64_BYTE1 
B64_BYTE2 
B64_BYTE3 

◆ first_byte_type

Enumerator
INDEXED_FIELD 
INDEXED_FIELD_X 
LITHDR_INCIDX 
LITHDR_INCIDX_X 
LITHDR_INCIDX_V 
LITHDR_NOTIDX 
LITHDR_NOTIDX_X 
LITHDR_NOTIDX_V 
LITHDR_NVRIDX 
LITHDR_NVRIDX_X 
LITHDR_NVRIDX_V 
MAX_TBL_SIZE 
MAX_TBL_SIZE_X 
ILLEGAL 

Function Documentation

◆ grpc_chttp2_header_parser_parse()

grpc_error* grpc_chttp2_header_parser_parse ( void *  hpack_parser,
grpc_chttp2_transport t,
grpc_chttp2_stream s,
const grpc_slice slice,
int  is_last 
)

◆ grpc_chttp2_hpack_parser_destroy()

void grpc_chttp2_hpack_parser_destroy ( grpc_chttp2_hpack_parser p)

◆ grpc_chttp2_hpack_parser_init()

void grpc_chttp2_hpack_parser_init ( grpc_chttp2_hpack_parser p)

◆ grpc_chttp2_hpack_parser_parse()

grpc_error* grpc_chttp2_hpack_parser_parse ( grpc_chttp2_hpack_parser p,
const grpc_slice slice 
)

◆ grpc_chttp2_hpack_parser_set_has_priority()

void grpc_chttp2_hpack_parser_set_has_priority ( grpc_chttp2_hpack_parser p)

Variable Documentation

◆ grpc_trace_chttp2_hpack_parser

grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_hpack_parser(false, "chttp2_hpack_parser") ( false  ,
"chttp2_hpack_parser"   
)