akka.actor
Interface StashSupport

All Known Subinterfaces:
AsyncWriteProxy, AtLeastOnceDelivery, Creators.ActWithStash, Eventsourced, EventsourcedProcessor, PersistentActor, PersistentView, Processor, ProcessorImpl, Recovery, Stash, UnboundedStash, UnrestrictedStash, View
All Known Implementing Classes:
AbstractActorWithStash, AbstractActorWithUnboundedStash, AbstractActorWithUnrestrictedStash, AbstractEventsourcedProcessor, AbstractPersistentActor, AbstractPersistentActorWithAtLeastOnceDelivery, AbstractPersistentView, AbstractProcessor, AbstractView, ClusterClient, ClusterSingletonProxy, InmemJournal, JournalPerfSpec.BenchActor, RequestReader, RequestWriter, ShardCoordinator, SharedLeveldbJournal, UntypedActorWithStash, UntypedActorWithUnboundedStash, UntypedActorWithUnrestrictedStash, UntypedEventsourcedProcessor, UntypedPersistentActor, UntypedPersistentActorWithAtLeastOnceDelivery, UntypedPersistentView, UntypedProcessor, UntypedView

public interface StashSupport

INTERNAL API.

Support trait for implementing a stash for an actor instance. A default stash per actor (= user stash) is maintained by UnrestrictedStash by extending this trait. Actors that explicitly need other stashes (optionally in addition to and isolated from the user stash) can create new stashes via StashFactory.


Method Summary
 ActorCell actorCell()
           
 int capacity()
           
 scala.collection.immutable.Vector<Envelope> clearStash()
          INTERNAL API.
 ActorContext context()
          INTERNAL API.
 void enqueueFirst(Envelope envelope)
          Enqueues envelope at the first position in the mailbox.
 DequeBasedMessageQueueSemantics mailbox()
          INTERNAL API.
 void prepend(scala.collection.immutable.Seq<Envelope> others)
          Prepends others to this stash.
 ActorRef self()
          INTERNAL API.
 void stash()
          Adds the current message (the message that the actor received last) to the actor's stash.
 scala.collection.immutable.Vector<Envelope> theStash()
           
 void unstash()
          Prepends the oldest message in the stash to the mailbox, and then removes that message from the stash.
 void unstashAll()
          Prepends all messages in the stash to the mailbox, and then clears the stash.
 void unstashAll(scala.Function1<java.lang.Object,java.lang.Object> filterPredicate)
          INTERNAL API.
 

Method Detail

context

ActorContext context()
INTERNAL API.

Context of the actor that uses this stash.

Returns:
(undocumented)

self

ActorRef self()
INTERNAL API.

Self reference of the actor that uses this stash.

Returns:
(undocumented)

theStash

scala.collection.immutable.Vector<Envelope> theStash()

actorCell

ActorCell actorCell()

capacity

int capacity()

mailbox

DequeBasedMessageQueueSemantics mailbox()
INTERNAL API.

The actor's deque-based message queue. mailbox.queue is the underlying Deque.

Returns:
(undocumented)

stash

void stash()
Adds the current message (the message that the actor received last) to the actor's stash.

Throws:
StashOverflowException - in case of a stash capacity violation
java.lang.IllegalStateException - if the same message is stashed more than once

prepend

void prepend(scala.collection.immutable.Seq<Envelope> others)
Prepends others to this stash. This method is optimized for a large stash and small others.

Parameters:
others - (undocumented)

unstash

void unstash()
Prepends the oldest message in the stash to the mailbox, and then removes that message from the stash.

Messages from the stash are enqueued to the mailbox until the capacity of the mailbox (if any) has been reached. In case a bounded mailbox overflows, a MessageQueueAppendFailedException is thrown.

The unstashed message is guaranteed to be removed from the stash regardless if the unstash() call successfully returns or throws an exception.


unstashAll

void unstashAll()
Prepends all messages in the stash to the mailbox, and then clears the stash.

Messages from the stash are enqueued to the mailbox until the capacity of the mailbox (if any) has been reached. In case a bounded mailbox overflows, a MessageQueueAppendFailedException is thrown.

The stash is guaranteed to be empty after calling unstashAll().


unstashAll

void unstashAll(scala.Function1<java.lang.Object,java.lang.Object> filterPredicate)
INTERNAL API.

Prepends selected messages in the stash, applying filterPredicate, to the mailbox, and then clears the stash.

Messages from the stash are enqueued to the mailbox until the capacity of the mailbox (if any) has been reached. In case a bounded mailbox overflows, a MessageQueueAppendFailedException is thrown.

The stash is guaranteed to be empty after calling unstashAll(Any => Boolean).

Parameters:
filterPredicate - only stashed messages selected by this predicate are prepended to the mailbox.

clearStash

scala.collection.immutable.Vector<Envelope> clearStash()
INTERNAL API.

Clears the stash and and returns all envelopes that have not been unstashed.

Returns:
(undocumented)

enqueueFirst

void enqueueFirst(Envelope envelope)
Enqueues envelope at the first position in the mailbox. If the message contained in the envelope is a Terminated message, it will be ensured that it can be re-received by the actor.

Parameters:
envelope - (undocumented)