object ActorDSL extends actor.dsl.Inbox with Creators
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 akka.actor.ActorRefFactory
as shown with "barney" (where the akka.actor.ActorContext serves this
purpose), but since nested declarations share the same
lexical context "fred"’s ActorContext would be ambiguous
if the akka.actor.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.
- Annotations
- @deprecated
- Deprecated
- (Since version 2.5.0) deprecated Use the normal - actorOfmethods defined on- ActorSystemand- ActorContextto create Actors instead.
- Source
- ActorDSL.scala
- Alphabetic
- By Inheritance
- ActorDSL
- Creators
- Inbox
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- 
      
      
      
        
      
    
      
        
        class
      
      
        Extension extends actor.Extension with InboxExtension
      
      
      - Attributes
- protected
 
- 
      
      
      
        
      
    
      
        
        trait
      
      
        Act extends Actor
      
      
      This trait provides a DSL for writing the inner workings of an actor, e.g. This trait provides a DSL for writing the inner workings of an actor, e.g. for quickly trying things out in the REPL. It makes the following keywords available: - becomemapped to- context.become(_, discardOld = true)
- becomeStackedmapped to- context.become(_, discardOld = false)
- unbecomemapped to- context.unbecome
- setupfor implementing- preStart()
- whenFailingfor implementing- preRestart()
- whenRestartedfor implementing- postRestart()
- teardownfor implementing- postStop
 Using the life-cycle keywords multiple times results in replacing the content of the respective hook. - Definition Classes
- Creators
 
- 
      
      
      
        
      
    
      
        
        trait
      
      
        ActWithStash extends ActorDSL.Act with Stash
      
      
      Use this trait when defining an akka.actor.Actor with akka.actor.Stash, since just using actor()(new Act with Stash{})will not be able to see the Stash component due to type erasure.Use this trait when defining an akka.actor.Actor with akka.actor.Stash, since just using actor()(new Act with Stash{})will not be able to see the Stash component due to type erasure.- Definition Classes
- Creators
 
- 
      
      
      
        
      
    
      
        
        class
      
      
        Inbox extends actor.Inbox
      
      
      - Definition Classes
- Inbox
 
- 
      
      
      
        
      
    
      
        
        trait
      
      
        InboxExtension extends AnyRef
      
      
      - Attributes
- protected
- Definition Classes
- Inbox
 
Value Members
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        !=(arg0: Any): Boolean
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        ##(): Int
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        ==(arg0: Any): Boolean
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        actor[T <: Actor](factory: ActorRefFactory)(ctor: ⇒ T)(implicit arg0: ClassTag[T]): ActorRef
      
      
      Create an actor with an automatically generated name from the given thunk which must produce an akka.actor.Actor. Create an actor with an automatically generated name from the given thunk which must produce an akka.actor.Actor. - factory
- is an implicit akka.actor.ActorRefFactory, which can either be an akka.actor.ActorSystem or an akka.actor.ActorContext, where the latter is always implicitly available within an akka.actor.Actor. 
- ctor
- is a by-name argument which captures an akka.actor.Actor factory; do not make the generated object accessible to code outside and do not return the same object upon subsequent invocations. 
 - Definition Classes
- Creators
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        actor[T <: Actor](factory: ActorRefFactory, name: String)(ctor: ⇒ T)(implicit arg0: ClassTag[T]): ActorRef
      
      
      Create an actor from the given thunk which must produce an akka.actor.Actor. Create an actor from the given thunk which must produce an akka.actor.Actor. - factory
- is an implicit akka.actor.ActorRefFactory, which can either be an akka.actor.ActorSystem or an akka.actor.ActorContext, where the latter is always implicitly available within an akka.actor.Actor. 
- name
- is the name, which must be unique within the context of its parent; defaults to - nullwhich will assign a name automatically.
- ctor
- is a by-name argument which captures an akka.actor.Actor factory; do not make the generated object accessible to code outside and do not return the same object upon subsequent invocations. 
 - Definition Classes
- Creators
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        actor[T <: Actor](name: String)(ctor: ⇒ T)(implicit arg0: ClassTag[T], factory: ActorRefFactory): ActorRef
      
      
      Create an actor from the given thunk which must produce an akka.actor.Actor. Create an actor from the given thunk which must produce an akka.actor.Actor. - name
- is the name, which must be unique within the context of its parent. 
- ctor
- is a by-name argument which captures an akka.actor.Actor factory; do not make the generated object accessible to code outside and do not return the same object upon subsequent invocations. 
- factory
- is an implicit akka.actor.ActorRefFactory, which can either be an akka.actor.ActorSystem or an akka.actor.ActorContext, where the latter is always implicitly available within an akka.actor.Actor. 
 - Definition Classes
- Creators
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        actor[T <: Actor](ctor: ⇒ T)(implicit arg0: ClassTag[T], factory: ActorRefFactory): ActorRef
      
      
      Create an actor from the given thunk which must produce an akka.actor.Actor. Create an actor from the given thunk which must produce an akka.actor.Actor. - ctor
- is a by-name argument which captures an akka.actor.Actor factory; do not make the generated object accessible to code outside and do not return the same object upon subsequent invocations. 
- factory
- is an implicit akka.actor.ActorRefFactory, which can either be an akka.actor.ActorSystem or an akka.actor.ActorContext, where the latter is always implicitly available within an akka.actor.Actor. 
 - Definition Classes
- Creators
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        asInstanceOf[T0]: T0
      
      
      - Definition Classes
- Any
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        clone(): AnyRef
      
      
      - Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate() @throws( ... )
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        eq(arg0: AnyRef): Boolean
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        equals(arg0: Any): Boolean
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        getClass(): Class[_]
      
      
      - Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        hashCode(): Int
      
      
      - Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        inbox()(implicit system: ActorSystem): Inbox
      
      
      Create a new actor which will internally queue up messages it gets so that they can be interrogated with the akka.actor.dsl.Inbox!.Inbox!.receiveandakka.actor.dsl.Inbox!.Inbox!.selectmethods.Create a new actor which will internally queue up messages it gets so that they can be interrogated with the akka.actor.dsl.Inbox!.Inbox!.receiveandakka.actor.dsl.Inbox!.Inbox!.selectmethods. It will be created as a system actor in the ActorSystem which is implicitly (or explicitly) supplied.- Definition Classes
- Inbox
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        isInstanceOf[T0]: Boolean
      
      
      - Definition Classes
- Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        ne(arg0: AnyRef): Boolean
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        notify(): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        notifyAll(): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
 
- 
      
      
      
        
      
    
      
        implicit 
        def
      
      
        senderFromInbox(implicit inbox: Inbox): ActorRef
      
      
      - Definition Classes
- Inbox
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        synchronized[T0](arg0: ⇒ T0): T0
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        toString(): String
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long, arg1: Int): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @throws( ... )
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @throws( ... )
 
- 
      
      
      
        
      
    
      
        
        object
      
      
        Extension extends ExtensionId[Extension] with ExtensionIdProvider
      
      
      - Attributes
- protected