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
actorOf
methods defined onActorSystem
andActorContext
to 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:
become
mapped tocontext.become(_, discardOld = true)
becomeStacked
mapped tocontext.become(_, discardOld = false)
unbecome
mapped tocontext.unbecome
setup
for implementingpreStart()
whenFailing
for implementingpreRestart()
whenRestarted
for implementingpostRestart()
teardown
for implementingpostStop
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
null
which 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!.receive
andakka.actor.dsl.Inbox!.Inbox!.select
methods.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!.receive
andakka.actor.dsl.Inbox!.Inbox!.select
methods. 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