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")