Interface MessageQueue

All Known Subinterfaces:
BoundedControlAwareMessageQueueSemantics, BoundedDequeBasedMessageQueue, BoundedQueueBasedMessageQueue, ControlAwareMessageQueueSemantics, DequeBasedMessageQueue, QueueBasedMessageQueue, UnboundedControlAwareMessageQueueSemantics, UnboundedDequeBasedMessageQueue, UnboundedQueueBasedMessageQueue
All Known Implementing Classes:
BoundedControlAwareMailbox.MessageQueue, BoundedDequeBasedMailbox.MessageQueue, BoundedMailbox.MessageQueue, BoundedNodeMessageQueue, BoundedPriorityMailbox.MessageQueue, BoundedStablePriorityMailbox.MessageQueue, NodeMessageQueue, UnboundedControlAwareMailbox.MessageQueue, UnboundedDequeBasedMailbox.MessageQueue, UnboundedMailbox.MessageQueue, UnboundedPriorityMailbox.MessageQueue, UnboundedStablePriorityMailbox.MessageQueue

public interface MessageQueue
A MessageQueue is one of the core components in forming an Akka Mailbox. The MessageQueue is where the normal messages that are sent to Actors will be enqueued (and subsequently dequeued) It needs to at least support N producers and 1 consumer thread-safely.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    cleanUp(ActorRef owner, MessageQueue deadLetters)
    Called when the mailbox this queue belongs to is disposed of.
    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
    Indicates whether this queue is non-empty.
    int
    Should return the current number of messages held in this queue; may always return 0 if no other value is available efficiently.
  • Method Details

    • cleanUp

      void cleanUp(ActorRef owner, MessageQueue deadLetters)
      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).

    • dequeue

      Envelope dequeue()
      Try to dequeue the next message from this queue, return null failing that.
    • enqueue

      void enqueue(ActorRef receiver, Envelope handle)
      Try to enqueue the message to this queue, or throw an exception.
    • hasMessages

      boolean hasMessages()
      Indicates whether this queue is non-empty.
    • numberOfMessages

      int numberOfMessages()
      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, use hasMessages instead.