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 voidcleanUp(ActorRef owner, MessageQueue deadLetters)Called when the mailbox this queue belongs to is disposed of.Envelopedequeue()Try to dequeue the next message from this queue, return null failing that.voidenqueue(ActorRef receiver, Envelope handle)Try to enqueue the message to this queue, or throw an exception.booleanhasMessages()Indicates whether this queue is non-empty.intnumberOfMessages()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.DurationpushTimeOut()
-
-
-
Method Detail
-
cleanUp
public final void cleanUp(ActorRef owner, MessageQueue deadLetters)
Description copied from interface:MessageQueueCalled 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:
cleanUpin interfaceMessageQueue
-
dequeue
public final Envelope dequeue()
Description copied from interface:MessageQueueTry to dequeue the next message from this queue, return null failing that.- Specified by:
dequeuein interfaceMessageQueue
-
enqueue
public final void enqueue(ActorRef receiver, Envelope handle)
Description copied from interface:MessageQueueTry to enqueue the message to this queue, or throw an exception.- Specified by:
enqueuein interfaceMessageQueue
-
hasMessages
public final boolean hasMessages()
Description copied from interface:MessageQueueIndicates whether this queue is non-empty.- Specified by:
hasMessagesin interfaceMessageQueue
-
numberOfMessages
public final int numberOfMessages()
Description copied from interface:MessageQueueShould 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, usehasMessagesinstead.- Specified by:
numberOfMessagesin interfaceMessageQueue
-
pushTimeOut
public final scala.concurrent.duration.Duration pushTimeOut()
- Specified by:
pushTimeOutin interfaceBoundedMessageQueueSemantics
-
-