public class RemoteActorRefProvider extends java.lang.Object implements ActorRefProvider
ActorRefProvider
interface is supported.
Remote ActorRefProvider. Starts up actor on remote node and creates a RemoteActorRef representing it.
Modifier and Type | Class and Description |
---|---|
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 and Description |
---|
RemoteActorRefProvider(java.lang.String systemName,
ActorSystem.Settings settings,
EventStream eventStream,
DynamicAccess dynamicAccess) |
Modifier and Type | Method and Description |
---|---|
InternalActorRef |
actorFor(ActorPath path)
Deprecated.
use actorSelection instead of actorFor. Since 2.2.
|
InternalActorRef |
actorFor(InternalActorRef ref,
scala.collection.Iterable<java.lang.String> path)
Deprecated.
use actorSelection instead of actorFor. Since 2.2.
|
InternalActorRef |
actorFor(InternalActorRef ref,
java.lang.String path)
Deprecated.
use actorSelection instead of actorFor. Since 2.2.
|
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).
|
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.
|
ActorRef |
internalResolveActorRef(java.lang.String path)
INTERNAL API: This is used by the
ActorRefResolveCache via the
public resolveActorRef(path: String) . |
LoggingAdapter |
log() |
void |
quarantine(Address address,
scala.Option<java.lang.Object> uid,
java.lang.String reason)
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 |
remoteWatcher() |
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 “/temp” path.
|
ActorPath |
tempPath()
Generates and returns a unique actor path below “/temp”.
|
scala.concurrent.Future<Terminated> |
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 “/temp” path (i.e.
|
void |
useActorOnNode(ActorRef ref,
Props props,
Deploy deploy,
ActorRef supervisor)
Using (checking out) actor on a specific node.
|
public RemoteActorRefProvider(java.lang.String systemName, ActorSystem.Settings settings, EventStream eventStream, DynamicAccess dynamicAccess)
public java.lang.String systemName()
public ActorSystem.Settings settings()
ActorRefProvider
settings
in interface ActorRefProvider
public EventStream eventStream()
public DynamicAccess dynamicAccess()
public RemoteSettings remoteSettings()
public Deployer deployer()
ActorRefProvider
deployer
in interface ActorRefProvider
protected RemoteDeployer createDeployer()
public LoggingAdapter log()
public ActorPath rootPath()
ActorRefProvider
rootPath
in interface ActorRefProvider
public InternalActorRef deadLetters()
ActorRefProvider
deadLetters
in interface ActorRefProvider
public InternalActorRef rootGuardian()
ActorRefProvider
rootGuardian
in interface ActorRefProvider
public LocalActorRef guardian()
ActorRefProvider
guardian
in interface ActorRefProvider
public LocalActorRef systemGuardian()
ActorRefProvider
systemGuardian
in interface ActorRefProvider
public scala.concurrent.Future<Terminated> terminationFuture()
ActorRefProvider
terminationFuture
in interface ActorRefProvider
public void registerTempActor(InternalActorRef actorRef, ActorPath path)
ActorRefProvider
registerTempActor
in interface ActorRefProvider
actorRef
- (undocumented)path
- (undocumented)public void unregisterTempActor(ActorPath path)
ActorRefProvider
unregisterTempActor
in interface ActorRefProvider
path
- (undocumented)public ActorPath tempPath()
ActorRefProvider
tempPath
in interface ActorRefProvider
public VirtualPathContainer tempContainer()
ActorRefProvider
tempContainer
in interface ActorRefProvider
public RemoteTransport transport()
public Serialization serialization()
public InternalActorRef remoteDaemon()
public ActorRef remoteWatcher()
public void init(ActorSystemImpl system)
ActorRefProvider
init
in interface ActorRefProvider
system
- (undocumented)protected ActorRef createRemoteWatcher(ActorSystemImpl system)
protected FailureDetectorRegistry<Address> createRemoteWatcherFailureDetector(ExtendedActorSystem system)
protected ActorRef createRemoteDeploymentWatcher(ActorSystemImpl system)
public InternalActorRef actorOf(ActorSystemImpl system, Props props, InternalActorRef supervisor, ActorPath path, boolean systemService, scala.Option<Deploy> deploy, boolean lookupDeploy, boolean async)
ActorRefProvider
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
.actorOf
in interface ActorRefProvider
system
- (undocumented)props
- (undocumented)supervisor
- (undocumented)path
- (undocumented)systemService
- (undocumented)deploy
- (undocumented)lookupDeploy
- (undocumented)async
- (undocumented)public InternalActorRef actorFor(ActorPath path)
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.
Actor references acquired with actorFor
do not always include the full information
about the underlying actor identity and therefore such references do not always compare
equal to references acquired with actorOf
, sender
, or context.self
.
actorFor
in interface ActorRefProvider
path
- (undocumented)public InternalActorRef actorFor(InternalActorRef ref, java.lang.String path)
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.
actorFor
in interface ActorRefProvider
ref
- (undocumented)path
- (undocumented)public InternalActorRef actorFor(InternalActorRef ref, scala.collection.Iterable<java.lang.String> path)
ActorRefProvider
Create actor reference for the specified child path starting at the given starting point. This method always returns an actor which is “logically local”, i.e. it cannot be used to obtain a reference to an actor which is not physically or logically attached to this actor system.
actorFor
in interface ActorRefProvider
ref
- (undocumented)path
- (undocumented)public ActorRef rootGuardianAt(Address address)
ActorRefProvider
rootGuardianAt
in interface ActorRefProvider
address
- (undocumented)public InternalActorRef resolveActorRefWithLocalAddress(java.lang.String path, Address localAddress)
path
- (undocumented)localAddress
- (undocumented)public ActorRef resolveActorRef(java.lang.String path)
ActorRefProvider
resolveActorRef
in interface ActorRefProvider
path
- (undocumented)public ActorRef internalResolveActorRef(java.lang.String path)
ActorRefResolveCache
via the
public resolveActorRef(path: String)
.path
- (undocumented)public ActorRef resolveActorRef(ActorPath path)
ActorRefProvider
resolveActorRef
in interface ActorRefProvider
path
- (undocumented)public void useActorOnNode(ActorRef ref, Props props, Deploy deploy, ActorRef supervisor)
ref
- (undocumented)props
- (undocumented)deploy
- (undocumented)supervisor
- (undocumented)public scala.Option<Address> getExternalAddressFor(Address addr)
ActorRefProvider
getExternalAddressFor
in interface ActorRefProvider
addr
- (undocumented)public Address getDefaultAddress()
ActorRefProvider
getDefaultAddress
in interface ActorRefProvider
public void quarantine(Address address, scala.Option<java.lang.Object> uid, java.lang.String reason)
address
- Address of the remote system to be quarantineduid
- 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 gatedreason
- (undocumented)