akka.remote
Class RemoteActorRefProvider

java.lang.Object
  extended by akka.remote.RemoteActorRefProvider
All Implemented Interfaces:
ActorRefProvider
Direct Known Subclasses:
ClusterActorRefProvider

public class RemoteActorRefProvider
extends java.lang.Object
implements ActorRefProvider

INTERNAL API Depending on this class is not supported, only the ActorRefProvider interface is supported.

Remote ActorRefProvider. Starts up actor on remote node and creates a RemoteActorRef representing it.


Nested Class Summary
static class RemoteActorRefProvider.Finished$
           
static class RemoteActorRefProvider.Idle$
           
static interface RemoteActorRefProvider.TerminatorState
           
static class RemoteActorRefProvider.Uninitialized$
           
static class RemoteActorRefProvider.WaitDaemonShutdown$
           
static class RemoteActorRefProvider.WaitTransportShutdown$
           
 
Constructor Summary
RemoteActorRefProvider(java.lang.String systemName, ActorSystem.Settings settings, EventStream eventStream, DynamicAccess dynamicAccess)
           
 
Method Summary
 InternalActorRef actorFor(ActorPath path)
          Create actor reference for a specified local or remote path.
 InternalActorRef actorFor(InternalActorRef ref, scala.collection.Iterable<java.lang.String> path)
          Create actor reference for the specified child path starting at the given starting point.
 InternalActorRef actorFor(InternalActorRef ref, java.lang.String path)
          Create actor reference for a specified local or remote path, which will be parsed using java.net.URI.
 InternalActorRef actorOf(ActorSystemImpl system, Props props, InternalActorRef supervisor, ActorPath path, boolean systemService, scala.Option<Deploy> deploy, boolean lookupDeploy, boolean async)
          Actor factory with create-only semantics: will create an actor as described by props with the given supervisor and path (may be different in case of remote supervision).
 void afterSendSystemMessage(SystemMessage message)
          INTERNAL API
protected  RemoteDeployer createDeployer()
          Factory method to make it possible to override deployer in subclass Creates a new instance every time
protected  ActorRef createRemoteDeploymentWatcher(ActorSystemImpl system)
           
protected  ActorRef createRemoteWatcher(ActorSystemImpl system)
           
protected  FailureDetectorRegistry<Address> createRemoteWatcherFailureDetector(ExtendedActorSystem system)
           
 InternalActorRef deadLetters()
          Dead letter destination for this provider.
 Deployer deployer()
          The Deployer associated with this ActorRefProvider
 DynamicAccess dynamicAccess()
           
 EventStream eventStream()
           
 Address getDefaultAddress()
          Obtain the external address of the default transport.
 scala.Option<Address> getExternalAddressFor(Address addr)
          Obtain the address which is to be used within sender references when sending to the given other address or none if the other address cannot be reached from this system (i.e.
 LocalActorRef guardian()
          Reference to the supervisor used for all top-level user actors.
 void init(ActorSystemImpl system)
          Initialization of an ActorRefProvider happens in two steps: first construction of the object with settings, eventStream, etc.
 LoggingAdapter log()
           
 void quarantine(Address address, scala.Option<java.lang.Object> uid)
          Marks a remote system as out of sync and prevents reconnects until the quarantine timeout elapses.
 void registerTempActor(InternalActorRef actorRef, ActorPath path)
          Registers an actorRef at a path returned by tempPath(); do NOT pass in any other path.
 InternalActorRef remoteDaemon()
           
 RemoteSettings remoteSettings()
           
 ActorRef resolveActorRef(ActorPath path)
          Create actor reference for a specified path.
 ActorRef resolveActorRef(java.lang.String path)
          Create actor reference for a specified path.
 InternalActorRef resolveActorRefWithLocalAddress(java.lang.String path, Address localAddress)
          INTERNAL API Called in deserialization of incoming remote messages where the correct local address is known.
 InternalActorRef rootGuardian()
          Reference to the supervisor of guardian and systemGuardian; this is exposed so that the ActorSystemImpl can use it as lookupRoot, i.e.
 ActorRef rootGuardianAt(Address address)
          Reference to the supervisor of guardian and systemGuardian at the specified address; this is exposed so that the ActorRefFactory can use it as lookupRoot, i.e.
 ActorPath rootPath()
          The root path for all actors within this actor system, not including any remote address information.
 Serialization serialization()
           
 ActorSystem.Settings settings()
          The Settings associated with this ActorRefProvider
 LocalActorRef systemGuardian()
          Reference to the supervisor used for all top-level system actors.
 java.lang.String systemName()
           
 VirtualPathContainer tempContainer()
          Returns the actor reference representing the &ldquo;/temp&rdquo; path.
 ActorPath tempPath()
          Generates and returns a unique actor path below &ldquo;/temp&rdquo;.
 scala.concurrent.Future<scala.runtime.BoxedUnit> terminationFuture()
          This Future is completed upon termination of this ActorRefProvider, which is usually initiated by stopping the guardian via ActorSystem.stop().
 RemoteTransport transport()
           
 void unregisterTempActor(ActorPath path)
          Unregister a temporary actor from the &ldquo;/temp&rdquo; path (i.e.
 void useActorOnNode(ActorRef ref, Props props, Deploy deploy, ActorRef supervisor)
          Using (checking out) actor on a specific node.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RemoteActorRefProvider

public RemoteActorRefProvider(java.lang.String systemName,
                              ActorSystem.Settings settings,
                              EventStream eventStream,
                              DynamicAccess dynamicAccess)
Method Detail

systemName

public java.lang.String systemName()

settings

public ActorSystem.Settings settings()
Description copied from interface: ActorRefProvider
The Settings associated with this ActorRefProvider

Specified by:
settings in interface ActorRefProvider
Returns:
(undocumented)

eventStream

public EventStream eventStream()

dynamicAccess

public DynamicAccess dynamicAccess()

remoteSettings

public RemoteSettings remoteSettings()

deployer

public Deployer deployer()
Description copied from interface: ActorRefProvider
The Deployer associated with this ActorRefProvider

Specified by:
deployer in interface ActorRefProvider
Returns:
(undocumented)

createDeployer

protected RemoteDeployer createDeployer()
Factory method to make it possible to override deployer in subclass Creates a new instance every time

Returns:
(undocumented)

log

public LoggingAdapter log()

rootPath

public ActorPath rootPath()
Description copied from interface: ActorRefProvider
The root path for all actors within this actor system, not including any remote address information.

Specified by:
rootPath in interface ActorRefProvider
Returns:
(undocumented)

deadLetters

public InternalActorRef deadLetters()
Description copied from interface: ActorRefProvider
Dead letter destination for this provider.

Specified by:
deadLetters in interface ActorRefProvider
Returns:
(undocumented)

rootGuardian

public InternalActorRef rootGuardian()
Description copied from interface: ActorRefProvider
Reference to the supervisor of guardian and systemGuardian; this is exposed so that the ActorSystemImpl can use it as lookupRoot, i.e. for anchoring absolute actor look-ups.

Specified by:
rootGuardian in interface ActorRefProvider
Returns:
(undocumented)

guardian

public LocalActorRef guardian()
Description copied from interface: ActorRefProvider
Reference to the supervisor used for all top-level user actors.

Specified by:
guardian in interface ActorRefProvider
Returns:
(undocumented)

systemGuardian

public LocalActorRef systemGuardian()
Description copied from interface: ActorRefProvider
Reference to the supervisor used for all top-level system actors.

Specified by:
systemGuardian in interface ActorRefProvider
Returns:
(undocumented)

terminationFuture

public scala.concurrent.Future<scala.runtime.BoxedUnit> terminationFuture()
Description copied from interface: ActorRefProvider
This Future is completed upon termination of this ActorRefProvider, which is usually initiated by stopping the guardian via ActorSystem.stop().

Specified by:
terminationFuture in interface ActorRefProvider
Returns:
(undocumented)

registerTempActor

public void registerTempActor(InternalActorRef actorRef,
                              ActorPath path)
Description copied from interface: ActorRefProvider
Registers an actorRef at a path returned by tempPath(); do NOT pass in any other path.

Specified by:
registerTempActor in interface ActorRefProvider
Parameters:
actorRef - (undocumented)
path - (undocumented)

unregisterTempActor

public void unregisterTempActor(ActorPath path)
Description copied from interface: ActorRefProvider
Unregister a temporary actor from the &ldquo;/temp&rdquo; path (i.e. obtained from tempPath()); do NOT pass in any other path.

Specified by:
unregisterTempActor in interface ActorRefProvider
Parameters:
path - (undocumented)

tempPath

public ActorPath tempPath()
Description copied from interface: ActorRefProvider
Generates and returns a unique actor path below &ldquo;/temp&rdquo;.

Specified by:
tempPath in interface ActorRefProvider
Returns:
(undocumented)

tempContainer

public VirtualPathContainer tempContainer()
Description copied from interface: ActorRefProvider
Returns the actor reference representing the &ldquo;/temp&rdquo; path.

Specified by:
tempContainer in interface ActorRefProvider
Returns:
(undocumented)

transport

public RemoteTransport transport()

serialization

public Serialization serialization()

remoteDaemon

public InternalActorRef remoteDaemon()

init

public void init(ActorSystemImpl system)
Description copied from interface: ActorRefProvider
Initialization of an ActorRefProvider happens in two steps: first construction of the object with settings, eventStream, etc. and then—when the ActorSystem is constructed—the second phase during which actors may be created (e.g. the guardians).

Specified by:
init in interface ActorRefProvider
Parameters:
system - (undocumented)

createRemoteWatcher

protected ActorRef createRemoteWatcher(ActorSystemImpl system)

createRemoteWatcherFailureDetector

protected FailureDetectorRegistry<Address> createRemoteWatcherFailureDetector(ExtendedActorSystem system)

createRemoteDeploymentWatcher

protected ActorRef createRemoteDeploymentWatcher(ActorSystemImpl system)

actorOf

public InternalActorRef actorOf(ActorSystemImpl system,
                                Props props,
                                InternalActorRef supervisor,
                                ActorPath path,
                                boolean systemService,
                                scala.Option<Deploy> deploy,
                                boolean lookupDeploy,
                                boolean async)
Description copied from interface: ActorRefProvider
Actor factory with create-only semantics: will create an actor as described by props with the given supervisor and path (may be different in case of remote supervision). If systemService is true, deployment is bypassed (local-only). If Some(deploy) is passed in, it should be regarded as taking precedence over the nominally applicable settings, but it should be overridable from external configuration; the lookup of the latter can be suppressed by setting lookupDeploy to false.

Specified by:
actorOf in interface ActorRefProvider
Parameters:
system - (undocumented)
props - (undocumented)
supervisor - (undocumented)
path - (undocumented)
systemService - (undocumented)
deploy - (undocumented)
lookupDeploy - (undocumented)
async - (undocumented)
Returns:
(undocumented)

actorFor

public InternalActorRef actorFor(ActorPath path)
Description copied from interface: ActorRefProvider
Create actor reference for a specified local or remote path. If no such actor exists, it will be (equivalent to) a dead letter reference.

Specified by:
actorFor in interface ActorRefProvider
Parameters:
path - (undocumented)
Returns:
(undocumented)

actorFor

public InternalActorRef actorFor(InternalActorRef ref,
                                 java.lang.String path)
Description copied from interface: ActorRefProvider
Create actor reference for a specified local or remote path, which will be parsed using java.net.URI. If no such actor exists, it will be (equivalent to) a dead letter reference. If s is a relative URI, resolve it relative to the given ref.

Specified by:
actorFor in interface ActorRefProvider
Parameters:
ref - (undocumented)
path - (undocumented)
Returns:
(undocumented)

actorFor

public InternalActorRef actorFor(InternalActorRef ref,
                                 scala.collection.Iterable<java.lang.String> path)
Description copied from interface: ActorRefProvider
Create actor reference for the specified child path starting at the given starting point. This method always returns an actor which is &ldquo;logically local&rdquo;, i.e. it cannot be used to obtain a reference to an actor which is not physically or logically attached to this actor system.

Specified by:
actorFor in interface ActorRefProvider
Parameters:
ref - (undocumented)
path - (undocumented)
Returns:
(undocumented)

rootGuardianAt

public ActorRef rootGuardianAt(Address address)
Description copied from interface: ActorRefProvider
Reference to the supervisor of guardian and systemGuardian at the specified address; this is exposed so that the ActorRefFactory can use it as lookupRoot, i.e. for anchoring absolute actor selections.

Specified by:
rootGuardianAt in interface ActorRefProvider
Parameters:
address - (undocumented)
Returns:
(undocumented)

resolveActorRefWithLocalAddress

public InternalActorRef resolveActorRefWithLocalAddress(java.lang.String path,
                                                        Address localAddress)
INTERNAL API Called in deserialization of incoming remote messages where the correct local address is known.

Parameters:
path - (undocumented)
localAddress - (undocumented)
Returns:
(undocumented)

resolveActorRef

public ActorRef resolveActorRef(java.lang.String path)
Description copied from interface: ActorRefProvider
Create actor reference for a specified path. If no such actor exists, it will be (equivalent to) a dead letter reference.

Specified by:
resolveActorRef in interface ActorRefProvider
Parameters:
path - (undocumented)
Returns:
(undocumented)

resolveActorRef

public ActorRef resolveActorRef(ActorPath path)
Description copied from interface: ActorRefProvider
Create actor reference for a specified path. If no such actor exists, it will be (equivalent to) a dead letter reference.

Specified by:
resolveActorRef in interface ActorRefProvider
Parameters:
path - (undocumented)
Returns:
(undocumented)

useActorOnNode

public void useActorOnNode(ActorRef ref,
                           Props props,
                           Deploy deploy,
                           ActorRef supervisor)
Using (checking out) actor on a specific node.

Parameters:
ref - (undocumented)
props - (undocumented)
deploy - (undocumented)
supervisor - (undocumented)

getExternalAddressFor

public scala.Option<Address> getExternalAddressFor(Address addr)
Description copied from interface: ActorRefProvider
Obtain the address which is to be used within sender references when sending to the given other address or none if the other address cannot be reached from this system (i.e. no means of communication known; no attempt is made to verify actual reachability).

Specified by:
getExternalAddressFor in interface ActorRefProvider
Parameters:
addr - (undocumented)
Returns:
(undocumented)

getDefaultAddress

public Address getDefaultAddress()
Description copied from interface: ActorRefProvider
Obtain the external address of the default transport.

Specified by:
getDefaultAddress in interface ActorRefProvider
Returns:
(undocumented)

quarantine

public void quarantine(Address address,
                       scala.Option<java.lang.Object> uid)
Marks a remote system as out of sync and prevents reconnects until the quarantine timeout elapses.

Parameters:
address - Address of the remote system to be quarantined
uid - UID of the remote system, if the uid is not defined it will not be a strong quarantine but the current endpoint writer will be stopped (dropping system messages) and the address will be gated

afterSendSystemMessage

public void afterSendSystemMessage(SystemMessage message)
INTERNAL API

Parameters:
message - (undocumented)