class BlockingRingBuffer

Defined at line 55 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/blocking_ring_buffer.h

A wrapper around |RingBuffer| which enables callers to block their calling

thread while invoking |Reserve| if no space is available. Callers are automatically

woken up when space is made available.

This class is not movable or copyable.

This class is thread-safe.

Public Methods

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

Defined at line 55 of file ../../zircon/system/ulib/storage/buffer/blocking_ring_buffer.cc

void BlockingRingBuffer (const BlockingRingBuffer & )

Defined at line 57 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/blocking_ring_buffer.h

BlockingRingBuffer & operator= (const BlockingRingBuffer & )

Defined at line 58 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/blocking_ring_buffer.h

void BlockingRingBuffer (BlockingRingBuffer && other)

Defined at line 59 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/blocking_ring_buffer.h

BlockingRingBuffer & operator= (BlockingRingBuffer && other)

Defined at line 60 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/blocking_ring_buffer.h

void ~BlockingRingBuffer ()

Defined at line 61 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/blocking_ring_buffer.h

zx_status_t Reserve (uint64_t blocks, BlockingRingBufferReservation * out)

Same as |RingBuffer.Reserve|, but only returns ZX_ERR_NO_SPACE if |blocks| is greater

than capacity. In all other cases, blocks the caller until space is available.

Defined at line 69 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/blocking_ring_buffer.h

size_t capacity ()

Defined at line 73 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/blocking_ring_buffer.h

uint32_t BlockSize ()

Defined at line 74 of file ../../zircon/system/ulib/storage/buffer/include/storage/buffer/blocking_ring_buffer.h