class RingBufferState

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

Internal state backing RingBuffer. Refer to that class for the public API.

This class is not movable or copyable.

This class is thread-safe.

Public Methods

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 15 of file ../../zircon/system/ulib/storage/buffer/ring_buffer.cc

void Free (const RingBufferReservation & reservation)

Frees |reservation| from the buffer.

Only callable by |RingBufferReservation|, since this frees the previously used

reservation.

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

void RingBufferState (VmoBuffer buffer)

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

void RingBufferState (const RingBufferState & )

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

RingBufferState & operator= (const RingBufferState & )

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

void RingBufferState (RingBufferState && other)

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

RingBufferState & operator= (RingBufferState && other)

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

void ~RingBufferState ()

Defined at line 40 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 52 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/ring_buffer.h

uint32_t BlockSize ()

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

void * Data (size_t index)

Returns data starting at block |index| in the buffer.

Only callable by |RingBufferReservation|, since this uses the previously created

reservation.

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

VmoBuffer * buffer ()

Returns a pointer to the underlying buffer. Should only be accessible to the

|RingBufferReservation|, which should take caution to only reference reserved portions

of the buffer itself.

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

const VmoBuffer * buffer ()

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

vmoid_t vmoid ()

Returns the vmoid of the underlying RingBuffer.

Only callable by |RingBufferReservation|, since this uses the previously created

reservation.

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