34 #ifndef GRPC_IMPL_CODEGEN_SLICE_H
35 #define GRPC_IMPL_CODEGEN_SLICE_H
68 #define GPR_SLICE_INLINED_SIZE (sizeof(size_t) + sizeof(uint8_t *) - 1)
93 #define GPR_SLICE_START_PTR(slice) \
94 ((slice).refcount ? (slice).data.refcounted.bytes \
95 : (slice).data.inlined.bytes)
96 #define GPR_SLICE_LENGTH(slice) \
97 ((slice).refcount ? (slice).data.refcounted.length \
98 : (slice).data.inlined.length)
99 #define GPR_SLICE_SET_LENGTH(slice, newlen) \
100 ((slice).refcount ? ((slice).data.refcounted.length = (size_t)(newlen)) \
101 : ((slice).data.inlined.length = (uint8_t)(newlen)))
102 #define GPR_SLICE_END_PTR(slice) \
103 GPR_SLICE_START_PTR(slice) + GPR_SLICE_LENGTH(slice)
104 #define GPR_SLICE_IS_EMPTY(slice) (GPR_SLICE_LENGTH(slice) == 0)
struct gpr_slice gpr_slice
struct gpr_slice::@13::@14 refcounted
GPRAPI gpr_slice gpr_slice_from_copied_buffer(const char *source, size_t len)
#define GPR_SLICE_INLINED_SIZE
Definition: slice.h:68
size_t length
Definition: slice.h:84
GPRAPI gpr_slice gpr_slice_new_with_len(void *p, size_t len, void(*destroy)(void *, size_t))
GPRAPI gpr_slice gpr_empty_slice(void)
GPRAPI gpr_slice gpr_slice_sub(gpr_slice s, size_t begin, size_t end)
GPRAPI int gpr_slice_cmp(gpr_slice a, gpr_slice b)
GPRAPI void gpr_slice_unref(gpr_slice s)
union gpr_slice::@13 data
void(* unref)(void *)
Definition: slice.h:65
GPRAPI gpr_slice gpr_slice_malloc(size_t length)
GPRAPI gpr_slice gpr_slice_from_static_string(const char *source)
GPRAPI gpr_slice gpr_slice_from_copied_string(const char *source)
GPRAPI gpr_slice gpr_slice_ref(gpr_slice s)
void(* ref)(void *)
Definition: slice.h:64
GPRAPI gpr_slice gpr_slice_new(void *p, size_t len, void(*destroy)(void *))
struct gpr_slice_refcount * refcount
Definition: slice.h:80
GPRAPI gpr_slice gpr_slice_split_tail(gpr_slice *s, size_t split)
GPRAPI int gpr_slice_str_cmp(gpr_slice a, const char *b)
uint8_t * bytes
Definition: slice.h:83
GPRAPI gpr_slice gpr_slice_sub_no_ref(gpr_slice s, size_t begin, size_t end)
struct gpr_slice_refcount gpr_slice_refcount
uint8_t length
Definition: slice.h:87
GPRAPI gpr_slice gpr_slice_split_head(gpr_slice *s, size_t split)
struct gpr_slice::@13::@15 inlined