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);
grpc_call_element * elem
Definition: client_channel.cc:112
grpc_mdelem grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl, uint32_t index)
Definition: hpack_table.h:101
grpc_mdelem grpc_chttp2_hptbl_lookup_dynamic_index(const grpc_chttp2_hptbl *tbl, uint32_t tbl_index)
Definition: hpack_table.cc:65
grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(const grpc_chttp2_hptbl *tbl, grpc_mdelem md)
Definition: hpack_table.cc:200
uintptr_t grpc_chttp2_get_static_hpack_table_index(grpc_mdelem md)
Definition: hpack_table.h:129
grpc_error * grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl, uint32_t bytes)
Definition: hpack_table.cc:116
#define GRPC_CHTTP2_LAST_STATIC_ENTRY
Definition: hpack_table.h:33
grpc_mdelem grpc_chttp2_hptbl_lookup_ref_dynamic_index(const grpc_chttp2_hptbl *tbl, uint32_t tbl_index)
Definition: hpack_table.cc:70
#define GRPC_CHTTP2_INITIAL_HPACK_TABLE_SIZE
Definition: hpack_table.h:36
void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl, uint32_t max_bytes)
Definition: hpack_table.cc:102
#define GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD
Definition: hpack_table.h:40
size_t grpc_chttp2_get_size_in_hpack_table(grpc_mdelem elem, bool use_true_binary_metadata)
Definition: hpack_table.cc:233
grpc_error * grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem md) GRPC_MUST_USE_RESULT
Definition: hpack_table.cc:149
void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl)
Definition: hpack_table.cc:38
#define GPR_DEBUG_ASSERT(x)
Definition: log.h:103
GPRAPI void * gpr_malloc(size_t size)
malloc.
Definition: alloc.cc:28
Definition: hpack_table.h:141
int has_value
Definition: hpack_table.h:143
uint32_t index
Definition: hpack_table.h:142
Definition: hpack_table.h:50
grpc_mdelem * ents
Definition: hpack_table.h:86
static constexpr uint32_t kInitialCapacity
Definition: hpack_table.h:55
grpc_chttp2_hptbl()
Definition: hpack_table.h:60
uint32_t num_ents
Definition: hpack_table.h:70
uint32_t cap_entries
Definition: hpack_table.h:82
uint32_t current_table_bytes
Definition: hpack_table.h:77
uint32_t max_bytes
Definition: hpack_table.h:75
uint32_t mem_used
Definition: hpack_table.h:72
uint32_t first_ent
Definition: hpack_table.h:68
uint32_t max_entries
Definition: hpack_table.h:80
static uint32_t entries_for_bytes(uint32_t bytes)
Definition: hpack_table.h:51
Definition: error_internal.h:39
Definition: metadata.h:98