Go to the source code of this file.
◆ GRPC_SLICE_BUFFER_INLINE_ELEMENTS
#define GRPC_SLICE_BUFFER_INLINE_ELEMENTS 8 |
◆ GRPC_SLICE_END_PTR
◆ GRPC_SLICE_INLINE_EXTRA_SIZE
#define GRPC_SLICE_INLINE_EXTRA_SIZE sizeof(void*) |
Slice API.
A slice represents a contiguous reference counted array of bytes. It is cheap to take references to a slice, and it is cheap to create a slice pointing to a subset of another slice.
The data-structure for slices is exposed here to allow non-gpr code to build slices from whatever data they have available.
When defining interfaces that handle slices, care should be taken to define reference ownership semantics (who should call unref?) and mutability constraints (is the callee allowed to modify the slice?)
◆ GRPC_SLICE_INLINED_SIZE
◆ GRPC_SLICE_IS_EMPTY
◆ GRPC_SLICE_LENGTH
#define GRPC_SLICE_LENGTH |
( |
|
slice | ) |
|
Value:((slice).refcount ? (slice).data.refcounted.length \
: (slice).data.inlined.length)
◆ GRPC_SLICE_SET_LENGTH
#define GRPC_SLICE_SET_LENGTH |
( |
|
slice, |
|
|
|
newlen |
|
) |
| |
Value:((slice).refcount ? ((slice).data.refcounted.length = (size_t)(newlen)) \
: ((slice).data.inlined.length = (uint8_t)(newlen)))
◆ GRPC_SLICE_START_PTR
#define GRPC_SLICE_START_PTR |
( |
|
slice | ) |
|
Value:((slice).refcount ? (slice).data.refcounted.bytes \
: (slice).data.inlined.bytes)
◆ grpc_slice
◆ grpc_slice_buffer
Represents an expandable array of slices, to be interpreted as a single item.