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