Package org.apache.pekko.dispatch
Class NodeMessageQueue
- java.lang.Object
-
- java.util.concurrent.atomic.AtomicReference<AbstractNodeQueue.Node<T>>
-
- org.apache.pekko.dispatch.AbstractNodeQueue<Envelope>
-
- org.apache.pekko.dispatch.NodeMessageQueue
-
- All Implemented Interfaces:
java.io.Serializable
,MessageQueue
,UnboundedMessageQueueSemantics
public class NodeMessageQueue extends AbstractNodeQueue<Envelope> implements MessageQueue, UnboundedMessageQueueSemantics
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.pekko.dispatch.AbstractNodeQueue
AbstractNodeQueue.Node<T>
-
-
Constructor Summary
Constructors Constructor Description NodeMessageQueue()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cleanUp(ActorRef owner, MessageQueue deadLetters)
Called when the mailbox this queue belongs to is disposed of.Envelope
dequeue()
Try to dequeue the next message from this queue, return null failing that.void
enqueue(ActorRef receiver, Envelope handle)
Try to enqueue the message to this queue, or throw an exception.boolean
hasMessages()
Indicates whether this queue is non-empty.int
numberOfMessages()
Should return the current number of messages held in this queue; may always return 0 if no other value is available efficiently.-
Methods inherited from class org.apache.pekko.dispatch.AbstractNodeQueue
add, addNode, count, isEmpty, peek, peekNode, poll, pollNode
-
Methods inherited from class java.util.concurrent.atomic.AtomicReference
accumulateAndGet, compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, get, getAcquire, getAndAccumulate, getAndSet, getAndUpdate, getOpaque, getPlain, lazySet, set, setOpaque, setPlain, setRelease, toString, updateAndGet, weakCompareAndSet, weakCompareAndSetAcquire, weakCompareAndSetPlain, weakCompareAndSetRelease, weakCompareAndSetVolatile
-
-
-
-
Method Detail
-
cleanUp
public final void cleanUp(ActorRef owner, MessageQueue deadLetters)
Description copied from interface:MessageQueue
Called when the mailbox this queue belongs to is disposed of. Normally it is expected to transfer all remaining messages into the dead letter queue which is passed in. The owner of this MessageQueue is passed in if available (e.g. for creating DeadLetters()), “/deadletters” otherwise.Note that we implement the method in a recursive manner mainly for atomicity (not touching the queue twice).
- Specified by:
cleanUp
in interfaceMessageQueue
-
dequeue
public final Envelope dequeue()
Description copied from interface:MessageQueue
Try to dequeue the next message from this queue, return null failing that.- Specified by:
dequeue
in interfaceMessageQueue
-
enqueue
public final void enqueue(ActorRef receiver, Envelope handle)
Description copied from interface:MessageQueue
Try to enqueue the message to this queue, or throw an exception.- Specified by:
enqueue
in interfaceMessageQueue
-
hasMessages
public final boolean hasMessages()
Description copied from interface:MessageQueue
Indicates whether this queue is non-empty.- Specified by:
hasMessages
in interfaceMessageQueue
-
numberOfMessages
public final int numberOfMessages()
Description copied from interface:MessageQueue
Should return the current number of messages held in this queue; may always return 0 if no other value is available efficiently. Do not use this for testing for presence of messages, usehasMessages
instead.- Specified by:
numberOfMessages
in interfaceMessageQueue
-
-