Class FlowControlledDisposableReadonlyBuffer<T>
- java.lang.Object
-
- io.axoniq.axonserver.connector.impl.buffer.FlowControlledDisposableReadonlyBuffer<T>
-
- Type Parameters:
T- the type of messages this buffer deals with
- All Implemented Interfaces:
CloseableReadonlyBuffer<T>,DisposableReadonlyBuffer<T>
public class FlowControlledDisposableReadonlyBuffer<T> extends Object implements DisposableReadonlyBuffer<T>
Connects aFlowControlinstance with aDisposableReadonlyBufferassuming thatrequestingfrom the flow control will trigger a replenishment of the buffer.- Since:
- 4.6.0
- Author:
- Milan Savic, Stefan Dragisic, Allard Buijze
-
-
Constructor Summary
Constructors Constructor Description FlowControlledDisposableReadonlyBuffer(FlowControl flowControl, CloseableReadonlyBuffer<T> buffer)Instantiates this buffer with the givenflowControlandbuffer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcapacity()Returns the overall capacity of this buffer.booleanclosed()Indicates whether the buffer is closed by the producing side.voiddispose()Disposes this buffer from the subscriber's side.Optional<ErrorMessage>error()Returns an error from this buffer, if any.booleanisEmpty()Indicates whether there are messages in the buffer.voidonAvailable(Runnable onAvailable)Registers an action to be triggered when there is a new message added to the buffer, or the buffer is closed, or the buffer is closed with an error.Optional<T>poll()Polls the message from this buffer.
-
-
-
Constructor Detail
-
FlowControlledDisposableReadonlyBuffer
public FlowControlledDisposableReadonlyBuffer(FlowControl flowControl, CloseableReadonlyBuffer<T> buffer)
Instantiates this buffer with the givenflowControlandbuffer.- Parameters:
flowControl- used forbufferreplenishmentbuffer- used for message retrieval onFlowControl.request(long)
-
-
Method Detail
-
poll
public Optional<T> poll()
Description copied from interface:CloseableReadonlyBufferPolls the message from this buffer. If the returnedOptionalis empty, that doesn't mean that this buffer stays empty forever. TheCloseableReadonlyBuffer.closed()method should be consolidated to validate this.- Specified by:
pollin interfaceCloseableReadonlyBuffer<T>- Returns:
- an
Optionalwith polled message
-
isEmpty
public boolean isEmpty()
Description copied from interface:CloseableReadonlyBufferIndicates whether there are messages in the buffer. If this returnsfalse, that doesn't mean that this buffer stays empty forever. TheCloseableReadonlyBuffer.closed()method should be consolidated to validate this.- Specified by:
isEmptyin interfaceCloseableReadonlyBuffer<T>- Returns:
trueif buffer is empty,falseotherwise
-
capacity
public int capacity()
Description copied from interface:CloseableReadonlyBufferReturns the overall capacity of this buffer.- Specified by:
capacityin interfaceCloseableReadonlyBuffer<T>- Returns:
- the overall capacity of this buffer
-
onAvailable
public void onAvailable(Runnable onAvailable)
Description copied from interface:CloseableReadonlyBufferRegisters an action to be triggered when there is a new message added to the buffer, or the buffer is closed, or the buffer is closed with an error. The action can checkCloseableReadonlyBuffer.poll(),CloseableReadonlyBuffer.closed(), andCloseableReadonlyBuffer.error()to validate this.- Specified by:
onAvailablein interfaceCloseableReadonlyBuffer<T>- Parameters:
onAvailable- to be invoked when there are changes in this buffer
-
dispose
public void dispose()
Description copied from interface:DisposableReadonlyBufferDisposes this buffer from the subscriber's side.- Specified by:
disposein interfaceDisposableReadonlyBuffer<T>
-
closed
public boolean closed()
Description copied from interface:CloseableReadonlyBufferIndicates whether the buffer is closed by the producing side.- Specified by:
closedin interfaceCloseableReadonlyBuffer<T>- Returns:
trueif closed,falseotherwise
-
error
public Optional<ErrorMessage> error()
Description copied from interface:CloseableReadonlyBufferReturns an error from this buffer, if any.- Specified by:
errorin interfaceCloseableReadonlyBuffer<T>- Returns:
- an
Optionalof an error, if any
-
-