akka.actor
Interface UnrestrictedStash

All Superinterfaces:
Actor
All Known Subinterfaces:
Creators.ActWithStash, Stash, UnboundedStash
All Known Implementing Classes:
UntypedActorWithStash, UntypedActorWithUnboundedStash, UntypedActorWithUnrestrictedStash

public interface UnrestrictedStash
extends Actor

A version of Stash that does not enforce any mailbox type. The proper mailbox has to be configured manually, and the mailbox should extend the DequeBasedMessageQueueSemantics marker trait.


Nested Class Summary
 
Nested classes/interfaces inherited from interface akka.actor.Actor
Actor.emptyBehavior$
 
Method Summary
 int capacity()
           
 DequeBasedMessageQueueSemantics mailbox()
           
 void postStop()
          Overridden callback.
 void preRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)
          Overridden callback.
 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 unstashAll()
          Prepends all messages in the stash to the mailbox, and then clears the stash.
 
Methods inherited from interface akka.actor.Actor
context, noSender, postRestart, preStart, receive, self, sender, supervisorStrategy, unhandled
 

Method Detail

theStash

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

capacity

int capacity()

mailbox

DequeBasedMessageQueueSemantics mailbox()

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

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().


preRestart

void preRestart(java.lang.Throwable reason,
                scala.Option<java.lang.Object> message)
Overridden callback. Prepends all messages in the stash to the mailbox, clears the stash, stops all children and invokes the postStop() callback.

Specified by:
preRestart in interface Actor
Parameters:
reason - the Throwable that caused the restart to happen
message - optionally the current message the actor processed when failing, if applicable

Is called on a crashed Actor right BEFORE it is restarted to allow clean up of resources before Actor is terminated.


postStop

void postStop()
Overridden callback. Prepends all messages in the stash to the mailbox and clears the stash. Must be called when overriding this method, otherwise stashed messages won't be propagated to DeadLetters when actor stops.

Specified by:
postStop in interface Actor