class RingBuffer

Defined at line 185 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

In-memory circular buffer.

This class is not movable or copyable.

This class is thread-safe.

Public Methods

void RingBuffer (VmoBuffer buffer)

Defined at line 187 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

void RingBuffer (const RingBuffer & )

Defined at line 188 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

RingBuffer & operator= (const RingBuffer & )

Defined at line 189 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

void RingBuffer (RingBuffer && other)

Defined at line 190 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

RingBuffer & operator= (RingBuffer && other)

Defined at line 191 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

void ~RingBuffer ()

Defined at line 192 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

zx_status_t Reserve (uint64_t blocks, RingBufferReservation * out)

Reserves space for |blocks| contiguous blocks in the circular buffer.

To perform optimally, these reservations should be destroyed in the same order

they are reserved.

|blocks| must be greater than zero.

Returns ZX_ERR_NO_SPACE if there is not enough room.

Defined at line 205 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

size_t capacity ()

Returns the total amount of pending blocks which may be buffered.

Defined at line 210 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

uint32_t BlockSize ()

Defined at line 211 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

zx_status_t Create (VmoidRegistry * vmoid_registry, size_t blocks, uint32_t block_size, const char * label, std::unique_ptr<RingBuffer> * out)

Initializes the buffer with |blocks| blocks of size |block_size|.

Defined at line 256 of file ../../zircon/system/ulib/storage/buffer/ring_buffer.cc