GRPC Core  43.0.0
Functions
slice_buffer.h File Reference
#include <grpc/slice.h>
#include <grpc/support/port_platform.h>

Go to the source code of this file.

Functions

GPRAPI void grpc_slice_buffer_init (grpc_slice_buffer *sb)
 initialize a slice buffer More...
 
GPRAPI void grpc_slice_buffer_destroy (grpc_slice_buffer *sb)
 destroy a slice buffer - unrefs any held elements More...
 
GPRAPI void grpc_slice_buffer_add (grpc_slice_buffer *sb, grpc_slice slice)
 Add an element to a slice buffer - takes ownership of the slice. More...
 
GPRAPI size_t grpc_slice_buffer_add_indexed (grpc_slice_buffer *sb, grpc_slice slice)
 add an element to a slice buffer - takes ownership of the slice and returns the index of the slice. More...
 
GPRAPI void grpc_slice_buffer_addn (grpc_slice_buffer *sb, grpc_slice *slices, size_t n)
 
GPRAPI uint8_t * grpc_slice_buffer_tiny_add (grpc_slice_buffer *sb, size_t len)
 add a very small (less than 8 bytes) amount of data to the end of a slice buffer: returns a pointer into which to add the data More...
 
GPRAPI void grpc_slice_buffer_pop (grpc_slice_buffer *sb)
 pop the last buffer, but don't unref it More...
 
GPRAPI void grpc_slice_buffer_reset_and_unref (grpc_slice_buffer *sb)
 clear a slice buffer, unref all elements More...
 
GPRAPI void grpc_slice_buffer_swap (grpc_slice_buffer *a, grpc_slice_buffer *b)
 swap the contents of two slice buffers More...
 
GPRAPI void grpc_slice_buffer_move_into (grpc_slice_buffer *src, grpc_slice_buffer *dst)
 move all of the elements of src into dst More...
 
GPRAPI void grpc_slice_buffer_trim_end (grpc_slice_buffer *sb, size_t n, grpc_slice_buffer *garbage)
 remove n bytes from the end of a slice buffer More...
 
GPRAPI void grpc_slice_buffer_move_first (grpc_slice_buffer *src, size_t n, grpc_slice_buffer *dst)
 move the first n bytes of src into dst More...
 
GPRAPI void grpc_slice_buffer_move_first_no_ref (grpc_slice_buffer *src, size_t n, grpc_slice_buffer *dst)
 move the first n bytes of src into dst without adding references More...
 
GPRAPI void grpc_slice_buffer_move_first_into_buffer (grpc_slice_buffer *src, size_t n, void *dst)
 move the first n bytes of src into dst (copying them) More...
 
GPRAPI grpc_slice grpc_slice_buffer_take_first (grpc_slice_buffer *sb)
 take the first slice in the slice buffer More...
 
GPRAPI void grpc_slice_buffer_undo_take_first (grpc_slice_buffer *sb, grpc_slice slice)
 undo the above with (a possibly different) slice More...
 

Function Documentation

◆ grpc_slice_buffer_add()

GPRAPI void grpc_slice_buffer_add ( grpc_slice_buffer sb,
grpc_slice  slice 
)

Add an element to a slice buffer - takes ownership of the slice.

This function is allowed to concatenate the passed in slice to the end of some other slice if desired by the slice buffer.

◆ grpc_slice_buffer_add_indexed()

GPRAPI size_t grpc_slice_buffer_add_indexed ( grpc_slice_buffer sb,
grpc_slice  slice 
)

add an element to a slice buffer - takes ownership of the slice and returns the index of the slice.

Guarantees that the slice will not be concatenated at the end of another slice (i.e. the data for this slice will begin at the first byte of the slice at the returned index in sb->slices) The implementation MAY decide to concatenate data at the end of a small slice added in this fashion.

◆ grpc_slice_buffer_addn()

GPRAPI void grpc_slice_buffer_addn ( grpc_slice_buffer sb,
grpc_slice slices,
size_t  n 
)

◆ grpc_slice_buffer_destroy()

GPRAPI void grpc_slice_buffer_destroy ( grpc_slice_buffer sb)

destroy a slice buffer - unrefs any held elements

◆ grpc_slice_buffer_init()

GPRAPI void grpc_slice_buffer_init ( grpc_slice_buffer sb)

initialize a slice buffer

◆ grpc_slice_buffer_move_first()

GPRAPI void grpc_slice_buffer_move_first ( grpc_slice_buffer src,
size_t  n,
grpc_slice_buffer dst 
)

move the first n bytes of src into dst

◆ grpc_slice_buffer_move_first_into_buffer()

GPRAPI void grpc_slice_buffer_move_first_into_buffer ( grpc_slice_buffer src,
size_t  n,
void *  dst 
)

move the first n bytes of src into dst (copying them)

◆ grpc_slice_buffer_move_first_no_ref()

GPRAPI void grpc_slice_buffer_move_first_no_ref ( grpc_slice_buffer src,
size_t  n,
grpc_slice_buffer dst 
)

move the first n bytes of src into dst without adding references

◆ grpc_slice_buffer_move_into()

GPRAPI void grpc_slice_buffer_move_into ( grpc_slice_buffer src,
grpc_slice_buffer dst 
)

move all of the elements of src into dst

◆ grpc_slice_buffer_pop()

GPRAPI void grpc_slice_buffer_pop ( grpc_slice_buffer sb)

pop the last buffer, but don't unref it

◆ grpc_slice_buffer_reset_and_unref()

GPRAPI void grpc_slice_buffer_reset_and_unref ( grpc_slice_buffer sb)

clear a slice buffer, unref all elements

◆ grpc_slice_buffer_swap()

GPRAPI void grpc_slice_buffer_swap ( grpc_slice_buffer a,
grpc_slice_buffer b 
)

swap the contents of two slice buffers

◆ grpc_slice_buffer_take_first()

GPRAPI grpc_slice grpc_slice_buffer_take_first ( grpc_slice_buffer sb)

take the first slice in the slice buffer

◆ grpc_slice_buffer_tiny_add()

GPRAPI uint8_t* grpc_slice_buffer_tiny_add ( grpc_slice_buffer sb,
size_t  len 
)

add a very small (less than 8 bytes) amount of data to the end of a slice buffer: returns a pointer into which to add the data

◆ grpc_slice_buffer_trim_end()

GPRAPI void grpc_slice_buffer_trim_end ( grpc_slice_buffer sb,
size_t  n,
grpc_slice_buffer garbage 
)

remove n bytes from the end of a slice buffer

◆ grpc_slice_buffer_undo_take_first()

GPRAPI void grpc_slice_buffer_undo_take_first ( grpc_slice_buffer sb,
grpc_slice  slice 
)

undo the above with (a possibly different) slice