Package akka.actor

Class ActorDSL


  • public class ActorDSL
    extends java.lang.Object
    Deprecated.
    Use the normal actorOf methods defined on ActorSystem and ActorContext to create Actors instead.
    This object contains elements which make writing actors and related code more concise, e.g. when trying out actors in the REPL.

    For the communication of non-actor code with actors, you may use anonymous actors tailored to this job:

    
     import ActorDSL._
     import scala.concurrent.util.duration._
    
     implicit val system: ActorSystem = ...
    
     implicit val i = inbox()
     someActor ! someMsg // replies will go to `i`
    
     val reply = i.receive()
     val transformedReply = i.select(5 seconds) {
       case x: Int => 2 * x
     }
     

    The receive and select methods are synchronous, i.e. they block the calling thread until an answer from the actor is received or the timeout expires. The default timeout is taken from configuration item akka.actor.dsl.default-timeout.

    When defining actors in the REPL, say, you may want to have a look at the Act trait:

    
     import ActorDSL._
    
     val system: ActorSystem = ...
    
     val a = actor(system, "fred")(new Act {
         val b = actor("barney")(new Act {
             ...
           })
    
         become {
           case msg => ...
         }
       })
     

    Note that actor can be used with an implicit ActorRefFactory as shown with "barney" (where the ActorContext serves this purpose), but since nested declarations share the same lexical context "fred"’s ActorContext would be ambiguous if the ActorSystem were declared implicit (this could also be circumvented by shadowing the name system within "fred").

    Note: If you want to use an Act with Stash, you should use the ActWithStash trait in order to have the actor get the necessary deque-based mailbox setting.

    • Constructor Detail

      • ActorDSL

        public ActorDSL()
        Deprecated.
    • Method Detail

      • akka$actor$dsl$Inbox$$deadlineOrder

        public static scala.math.Ordering<Inbox.Query> akka$actor$dsl$Inbox$$deadlineOrder()
        Deprecated.
      • akka$actor$dsl$Inbox$$extraTime

        public static scala.concurrent.duration.FiniteDuration akka$actor$dsl$Inbox$$extraTime()
        Deprecated.
      • akka$actor$dsl$Inbox$_setter_$akka$actor$dsl$Inbox$$deadlineOrder_$eq

        protected abstract static void akka$actor$dsl$Inbox$_setter_$akka$actor$dsl$Inbox$$deadlineOrder_$eq​(scala.math.Ordering<Inbox.Query> x$1)
        Deprecated.
      • akka$actor$dsl$Inbox$_setter_$akka$actor$dsl$Inbox$$extraTime_$eq

        protected abstract static void akka$actor$dsl$Inbox$_setter_$akka$actor$dsl$Inbox$$extraTime_$eq​(scala.concurrent.duration.FiniteDuration x$1)
        Deprecated.
      • actor

        public static <T extends ActorActorRef actor​(scala.Function0<T> ctor,
                                                       scala.reflect.ClassTag<T> evidence$1,
                                                       ActorRefFactory factory)
        Deprecated.
      • actor

        public static <T extends ActorActorRef actor​(java.lang.String name,
                                                       scala.Function0<T> ctor,
                                                       scala.reflect.ClassTag<T> evidence$2,
                                                       ActorRefFactory factory)
        Deprecated.
      • actor

        public static <T extends ActorActorRef actor​(ActorRefFactory factory,
                                                       java.lang.String name,
                                                       scala.Function0<T> ctor,
                                                       scala.reflect.ClassTag<T> evidence$3)
        Deprecated.
      • actor

        public static <T extends ActorActorRef actor​(ActorRefFactory factory,
                                                       scala.Function0<T> ctor,
                                                       scala.reflect.ClassTag<T> evidence$4)
        Deprecated.