akka.actor
Class UntypedActorWithStash

java.lang.Object
  extended by akka.actor.UntypedActor
      extended by akka.actor.UntypedActorWithStash
All Implemented Interfaces:
Actor, Stash, StashSupport, UnrestrictedStash, RequiresMessageQueue<DequeBasedMessageQueueSemantics>

public abstract class UntypedActorWithStash
extends UntypedActor
implements Stash

Actor base class that should be extended to create an actor with a stash.

The stash enables an actor to temporarily stash away messages that can not or should not be handled using the actor's current behavior.

Example:
   public class MyActorWithStash extends UntypedActorWithStash {
     int count = 0;
     public void onReceive(Object msg) {
       if (msg instanceof String) {
         if (count < 0) {
           getSender().tell(new Integer(((String) msg).length()), getSelf());
         } else if (count == 2) {
           count = -1;
           unstashAll();
         } else {
           count += 1;
           stash();
         }
       }
     }
   }
 
Note that the subclasses of UntypedActorWithStash by default request a Deque based mailbox since this class implements the RequiresMessageQueue marker interface. You can override the default mailbox provided when DequeBasedMessageQueueSemantics are requested via config:
   akka.actor.mailbox.requirements {
     "akka.dispatch.BoundedDequeBasedMessageQueueSemantics" = your-custom-mailbox
   }
 
Alternatively, you can add your own requirement marker to the actor and configure a mailbox type to be used for your marker.

For a Stash based actor that enforces unbounded deques see UntypedActorWithUnboundedStash. There is also an unrestricted version UntypedActorWithUnrestrictedStash that does not enforce the mailbox type.


Nested Class Summary
 
Nested classes/interfaces inherited from interface akka.actor.Actor
Actor.emptyBehavior$
 
Constructor Summary
UntypedActorWithStash()
           
 
Method Summary
 
Methods inherited from class akka.actor.UntypedActor
getContext, getSelf, getSender, onReceive, postRestart, postStop, preRestart, preStart, receive, supervisorStrategy, unhandled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface akka.actor.UnrestrictedStash
postStop, preRestart
 
Methods inherited from interface akka.actor.Actor
aroundPostRestart, aroundPostStop, aroundPreRestart, aroundPreStart, aroundReceive, context, postRestart, preStart, receive, self, sender, supervisorStrategy, unhandled
 
Methods inherited from interface akka.actor.StashSupport
actorCell, capacity, clearStash, context, enqueueFirst, mailbox, prepend, self, stash, theStash, unstash, unstashAll, unstashAll
 

Constructor Detail

UntypedActorWithStash

public UntypedActorWithStash()