Immutable and serializable handle to an actor, which may or may not reside
on the local host or inside the same ActorSystem. An ActorRef
can be obtained from an ActorRefFactory, an interface which
is implemented by ActorSystem and ActorContext. This means
actors can be created top-level in the ActorSystem or as children of an
existing actor, but only from within that actor.

ActorRefs can be freely shared among actors by message passing. Message
passing conversely is their only purpose, as demonstrated in the following
examples:

ActorRef does not have a method for terminating the actor it points to, use
ActorRefFactory.stop(ref), or send a PoisonPill,
for this purpose.

Two actor references are compared equal when they have the same path and point to
the same actor incarnation. A reference pointing to a terminated actor doesn't compare
equal to a reference pointing to another (re-created) actor with the same path.

If you need to keep track of actor references in a collection and do not care
about the exact actor incarnation you can use the ActorPath as key because
the unique id of the actor is not taken into account when comparing actor paths.

forward

Forwards the message and passes the original sender actor as the sender.

Works, no matter whether originally sent with tell/'!' or ask/'?'.

Parameters:

message - (undocumented)

context - (undocumented)

isTerminated

public abstract boolean isTerminated()

Deprecated.

Use context.watch(actor) and receive Terminated(actor). Since 2.2.

INTERNAL API
Is the actor shut down?
The contract is that if this method returns true, then it will never be false again.
But you cannot rely on that it is alive if it returns false, since this by nature is a racy method.