Iterate over all elements of the buffer and apply a function to each element, without removing them.
Iterate over all elements of the buffer and apply a function to each element, without removing them.
the function to apply to each element
Return the first element of the message buffer without removing it.
Return the first element of the message buffer without removing it.
the first element or throws NoSuchElementException
if the buffer is empty
`NoSuchElementException`
if the buffer is empty
Check if the message buffer is empty.
Check if the message buffer is empty.
if the buffer is empty
true
if no more messages can be added, i.e. size equals the capacity of the stash buffer
Check if the message buffer is not empty.
Check if the message buffer is not empty.
if the buffer is not empty
How many elements are in the message buffer.
How many elements are in the message buffer.
the number of elements in the message buffer
Add one element to the end of the message buffer.
Add one element to the end of the message buffer.
StashOverflowException is thrown if the buffer StashBuffer#isFull.
the message to buffer
this message buffer
`StashOverflowException`
is thrown if the buffer StashBuffer#isFull.
Process numberOfMessages
of the stashed messages with the behavior
and the returned Behavior from each processed message.
Process numberOfMessages
of the stashed messages with the behavior
and the returned Behavior from each processed message.
The purpose of this method, compared to unstashAll
, is to unstash a limited
number of messages and then send a message to self
before continuing unstashing
more. That means that other new messages may arrive in-between and those must
be stashed to keep the original order of messages. To differentiate between
unstashed and new incoming messages the unstashed messages can be wrapped
in another message with the wrap
.
If an exception is thrown by processing a message a proceeding messages
and the message causing the exception have been removed from the
StashBuffer
, but unprocessed messages remain.
It's allowed to stash messages while unstashing. Those newly added messages will not be processed by this call and have to be unstashed in another call.
Process all stashed messages with the behavior
and the returned
Behavior from each processed message.
Process all stashed messages with the behavior
and the returned
Behavior from each processed message. The StashBuffer
will be
empty after processing all messages, unless an exception is thrown
or messages are stashed while unstashing.
If an exception is thrown by processing a message a proceeding messages
and the message causing the exception have been removed from the
StashBuffer
, but unprocessed messages remain.
It's allowed to stash messages while unstashing. Those newly added messages will not be processed by this call and have to be unstashed in another call.
A non thread safe mutable message buffer that can be used to buffer messages inside actors and then unstash them.
The buffer can hold at most the given
capacity
number of messages.Not for user extension.