Package akka.remote
Class RemoteTransport
- java.lang.Object
-
- akka.remote.RemoteTransport
-
- Direct Known Subclasses:
ArteryTransport
,Remoting
public abstract class RemoteTransport extends java.lang.Object
INTERNAL APIThe remote transport is responsible for sending and receiving messages. Each transport has an address, which it should provide in Serialization.currentTransportInformation (thread-local) while serializing actor references (which might also be part of messages). This address must be available (i.e. fully initialized) by the time the first message is received or when the start() method returns, whatever happens first.
-
-
Constructor Summary
Constructors Constructor Description RemoteTransport(ExtendedActorSystem system, RemoteActorRefProvider provider)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract scala.collection.immutable.Set<Address>
addresses()
Address to be used in RootActorPath of refs generated for this transport.abstract Address
defaultAddress()
The default transport address of the ActorSystemabstract Address
localAddressForRemote(Address remote)
Resolves the correct local address to be used for contacting the given remote addressabstract LoggingAdapter
log()
A Logger that can be used to log issues that may occurscala.concurrent.Future<java.lang.Object>
managementCommand(java.lang.Object cmd)
Sends a management command to the underlying transport stack.RemoteActorRefProvider
provider()
abstract 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.abstract void
send(java.lang.Object message, OptionVal<ActorRef> senderOption, RemoteActorRef recipient)
Sends the given message to the recipient supplying the sender() if anyabstract scala.concurrent.Future<Done>
shutdown()
Shuts down the remotingabstract void
start()
Start up the transport, i.e.ExtendedActorSystem
system()
-
-
-
Constructor Detail
-
RemoteTransport
public RemoteTransport(ExtendedActorSystem system, RemoteActorRefProvider provider)
-
-
Method Detail
-
addresses
public abstract scala.collection.immutable.Set<Address> addresses()
Address to be used in RootActorPath of refs generated for this transport.
-
defaultAddress
public abstract Address defaultAddress()
The default transport address of the ActorSystem- Returns:
- The listen address of the default transport
-
localAddressForRemote
public abstract Address localAddressForRemote(Address remote)
Resolves the correct local address to be used for contacting the given remote address- Parameters:
remote
- the remote address- Returns:
- the local address to be used for the given remote address
-
log
public abstract LoggingAdapter log()
A Logger that can be used to log issues that may occur
-
managementCommand
public scala.concurrent.Future<java.lang.Object> managementCommand(java.lang.Object cmd)
Sends a management command to the underlying transport stack. The call returns with a Future that indicates if the command was handled successfully or dropped.- Parameters:
cmd
- Command message to send to the transports.- Returns:
- A Future that indicates when the message was successfully handled or dropped.
-
provider
public RemoteActorRefProvider provider()
-
quarantine
public abstract 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.- Parameters:
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 gated
-
send
public abstract void send(java.lang.Object message, OptionVal<ActorRef> senderOption, RemoteActorRef recipient)
Sends the given message to the recipient supplying the sender() if any
-
shutdown
public abstract scala.concurrent.Future<Done> shutdown()
Shuts down the remoting
-
start
public abstract void start()
Start up the transport, i.e. enable incoming connections.
-
system
public ExtendedActorSystem system()
-
-