Package akka.dispatch
Class BoundedNodeMessageQueue
- java.lang.Object
-
- akka.dispatch.AbstractBoundedNodeQueue<Envelope>
-
- akka.dispatch.BoundedNodeMessageQueue
-
- All Implemented Interfaces:
BoundedMessageQueueSemantics
,MessageQueue
,MultipleConsumerSemantics
public class BoundedNodeMessageQueue extends AbstractBoundedNodeQueue<Envelope> implements MessageQueue, BoundedMessageQueueSemantics, MultipleConsumerSemantics
Lock-free bounded non-blocking multiple-producer single-consumer queue. Discards overflowing messages into DeadLetters.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class akka.dispatch.AbstractBoundedNodeQueue
AbstractBoundedNodeQueue.Node<T>
-
-
Constructor Summary
Constructors Constructor Description BoundedNodeMessageQueue(int capacity)
-
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.scala.concurrent.duration.Duration
pushTimeOut()
-
-
-
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
-
pushTimeOut
public final scala.concurrent.duration.Duration pushTimeOut()
- Specified by:
pushTimeOut
in interfaceBoundedMessageQueueSemantics
-
-