Namespaces | Macros | Functions
slice/slice_buffer.cc File Reference
#include <grpc/support/port_platform.h>
#include "src/core/lib/slice/slice_buffer.h"
#include <string.h>
#include <cstdint>
#include <utility>
#include <grpc/slice.h>
#include <grpc/slice_buffer.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_refcount.h"
Include dependency graph for slice/slice_buffer.cc:

Go to the source code of this file.

Namespaces

 grpc_core
 

Macros

#define GROW(x)   (3 * (x) / 2)
 

Functions

static void GPR_ATTRIBUTE_NOINLINE do_embiggen (grpc_slice_buffer *sb, const size_t slice_count, const size_t slice_offset)
 
void grpc_slice_buffer_add (grpc_slice_buffer *sb, grpc_slice s)
 
size_t grpc_slice_buffer_add_indexed (grpc_slice_buffer *sb, grpc_slice s)
 
void grpc_slice_buffer_addn (grpc_slice_buffer *sb, grpc_slice *s, size_t n)
 
void grpc_slice_buffer_copy_first_into_buffer (grpc_slice_buffer *src, size_t n, void *dst)
 
void grpc_slice_buffer_destroy_internal (grpc_slice_buffer *sb)
 
void grpc_slice_buffer_init (grpc_slice_buffer *sb)
 
void grpc_slice_buffer_move_first (grpc_slice_buffer *src, size_t n, grpc_slice_buffer *dst)
 
void grpc_slice_buffer_move_first_into_buffer (grpc_slice_buffer *src, size_t n, void *dst)
 
void grpc_slice_buffer_move_first_no_ref (grpc_slice_buffer *src, size_t n, grpc_slice_buffer *dst)
 
void grpc_slice_buffer_move_into (grpc_slice_buffer *src, grpc_slice_buffer *dst)
 
void grpc_slice_buffer_pop (grpc_slice_buffer *sb)
 
void grpc_slice_buffer_remove_first (grpc_slice_buffer *sb)
 
void grpc_slice_buffer_reset_and_unref_internal (grpc_slice_buffer *sb)
 
void grpc_slice_buffer_sub_first (grpc_slice_buffer *sb, size_t begin, size_t end)
 
void grpc_slice_buffer_swap (grpc_slice_buffer *a, grpc_slice_buffer *b)
 
grpc_slice grpc_slice_buffer_take_first (grpc_slice_buffer *sb)
 
uint8_tgrpc_slice_buffer_tiny_add (grpc_slice_buffer *sb, size_t n)
 
void grpc_slice_buffer_trim_end (grpc_slice_buffer *sb, size_t n, grpc_slice_buffer *garbage)
 
void grpc_slice_buffer_undo_take_first (grpc_slice_buffer *sb, grpc_slice slice)
 
static void maybe_embiggen (grpc_slice_buffer *sb)
 
template<bool incref>
static void slice_buffer_move_first_maybe_ref (grpc_slice_buffer *src, size_t n, grpc_slice_buffer *dst)
 

Macro Definition Documentation

◆ GROW

#define GROW (   x)    (3 * (x) / 2)

Definition at line 72 of file slice/slice_buffer.cc.

Function Documentation

◆ do_embiggen()

static void GPR_ATTRIBUTE_NOINLINE do_embiggen ( grpc_slice_buffer sb,
const size_t  slice_count,
const size_t  slice_offset 
)
static

Definition at line 78 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_add()

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.

Definition at line 170 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_add_indexed()

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.

Definition at line 161 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_addn()

void grpc_slice_buffer_addn ( grpc_slice_buffer sb,
grpc_slice s,
size_t  n 
)

Definition at line 224 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_copy_first_into_buffer()

void grpc_slice_buffer_copy_first_into_buffer ( grpc_slice_buffer src,
size_t  n,
void *  dst 
)

Definition at line 384 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_destroy_internal()

void grpc_slice_buffer_destroy_internal ( grpc_slice_buffer sb)

Definition at line 123 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_init()

void grpc_slice_buffer_init ( grpc_slice_buffer sb)

initialize a slice buffer

Definition at line 116 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_move_first()

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

Definition at line 348 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_move_first_into_buffer()

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)

Definition at line 358 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_move_first_no_ref()

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

Definition at line 353 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_move_into()

void grpc_slice_buffer_move_into ( grpc_slice_buffer src,
grpc_slice_buffer dst 
)

move all of the elements of src into dst

Definition at line 291 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_pop()

void grpc_slice_buffer_pop ( grpc_slice_buffer sb)

pop the last buffer, but don't unref it

Definition at line 231 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_remove_first()

void grpc_slice_buffer_remove_first ( grpc_slice_buffer sb)

Definition at line 449 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_reset_and_unref_internal()

void grpc_slice_buffer_reset_and_unref_internal ( grpc_slice_buffer sb)

Definition at line 238 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_sub_first()

void grpc_slice_buffer_sub_first ( grpc_slice_buffer sb,
size_t  begin,
size_t  end 
)

Definition at line 459 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_swap()

void grpc_slice_buffer_swap ( grpc_slice_buffer a,
grpc_slice_buffer b 
)

swap the contents of two slice buffers

Definition at line 249 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_take_first()

grpc_slice grpc_slice_buffer_take_first ( grpc_slice_buffer sb)

take the first slice in the slice buffer

Definition at line 438 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_tiny_add()

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

Definition at line 134 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_trim_end()

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

Definition at line 402 of file slice/slice_buffer.cc.

◆ grpc_slice_buffer_undo_take_first()

void grpc_slice_buffer_undo_take_first ( grpc_slice_buffer sb,
grpc_slice  slice 
)

undo the above with (a possibly different) slice

Definition at line 467 of file slice/slice_buffer.cc.

◆ maybe_embiggen()

static void maybe_embiggen ( grpc_slice_buffer sb)
static

Definition at line 102 of file slice/slice_buffer.cc.

◆ slice_buffer_move_first_maybe_ref()

template<bool incref>
static void slice_buffer_move_first_maybe_ref ( grpc_slice_buffer src,
size_t  n,
grpc_slice_buffer dst 
)
static

Definition at line 309 of file slice/slice_buffer.cc.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:31