19 #ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_TABLE_H 20 #define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_TABLE_H 33 #define GRPC_CHTTP2_LAST_STATIC_ENTRY 61 36 #define GRPC_CHTTP2_INITIAL_HPACK_TABLE_SIZE 4096 38 #define GRPC_CHTTP2_MAX_HPACK_TABLE_SIZE GRPC_CHTTP2_INITIAL_HPACK_TABLE_SIZE 40 #define GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD 32 44 #define GRPC_CHTTP2_MAX_TABLE_COUNT \ 45 ((GRPC_CHTTP2_MAX_HPACK_TABLE_SIZE + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD - 1) / \ 46 GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD) 64 memset(
ents, 0, AllocSize);
100 template <
bool take_ref = false>
124 bool use_true_binary_metadata);
void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl)
Definition: hpack_table.cc:38
#define GRPC_CHTTP2_INITIAL_HPACK_TABLE_SIZE
Definition: hpack_table.h:36
static constexpr uint32_t kInitialCapacity
Definition: hpack_table.h:55
#define GRPC_CHTTP2_LAST_STATIC_ENTRY
Definition: hpack_table.h:33
Definition: hpack_table.h:50
grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(const grpc_chttp2_hptbl *tbl, grpc_mdelem md)
Definition: hpack_table.cc:200
size_t grpc_chttp2_get_size_in_hpack_table(grpc_mdelem elem, bool use_true_binary_metadata)
Definition: hpack_table.cc:233
uint32_t current_table_bytes
Definition: hpack_table.h:77
Definition: error_internal.h:39
uint32_t max_bytes
Definition: hpack_table.h:75
grpc_error * grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl, uint32_t bytes)
Definition: hpack_table.cc:116
grpc_mdelem grpc_chttp2_hptbl_lookup_dynamic_index(const grpc_chttp2_hptbl *tbl, uint32_t tbl_index)
Definition: hpack_table.cc:65
#define GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD
Definition: hpack_table.h:40
Definition: metadata.h:98
void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl, uint32_t max_bytes)
Definition: hpack_table.cc:102
grpc_error * grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem md) GRPC_MUST_USE_RESULT
Definition: hpack_table.cc:149
uint32_t num_ents
Definition: hpack_table.h:70
GPRAPI void * gpr_malloc(size_t size)
malloc.
Definition: alloc.cc:28
static uint32_t entries_for_bytes(uint32_t bytes)
Definition: hpack_table.h:51
uint32_t first_ent
Definition: hpack_table.h:68
#define GPR_DEBUG_ASSERT(x)
Definition: log.h:103
uint32_t index
Definition: hpack_table.h:142
int has_value
Definition: hpack_table.h:143
uint32_t mem_used
Definition: hpack_table.h:72
grpc_mdelem * ents
Definition: hpack_table.h:86
grpc_mdelem grpc_chttp2_hptbl_lookup_ref_dynamic_index(const grpc_chttp2_hptbl *tbl, uint32_t tbl_index)
Definition: hpack_table.cc:70
uint32_t max_entries
Definition: hpack_table.h:80
Definition: hpack_table.h:141
uint32_t cap_entries
Definition: hpack_table.h:82
grpc_mdelem grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl, uint32_t index)
Definition: hpack_table.h:101
uintptr_t grpc_chttp2_get_static_hpack_table_index(grpc_mdelem md)
Definition: hpack_table.h:129
grpc_chttp2_hptbl()
Definition: hpack_table.h:60
grpc_call_element * elem
Definition: client_channel.cc:112