trait Transport extends AnyRef
An SPI layer for implementing asynchronous transport mechanisms. The Transport is responsible for initializing the underlying transmission mechanism and setting up logical links between transport entities.
Transport implementations that are loaded dynamically by the remoting must have a constructor that accepts a com.typesafe.config.Config and an pekko.actor.ExtendedActorSystem as parameters.
- Annotations
- @deprecated
- Deprecated
(Since version Akka 2.6.0) Classic remoting is deprecated, use Artery
- Source
- Transport.scala
- Alphabetic
- By Inheritance
- Transport
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def associate(remoteAddress: Address): Future[AssociationHandle]
Asynchronously opens a logical duplex link between two Transport Entities over a network.
Asynchronously opens a logical duplex link between two Transport Entities over a network. It could be backed by a real transport-layer connection (TCP), more lightweight connections provided over datagram protocols (UDP with additional services), substreams of multiplexed connections (SCTP) or physical links (serial port).
This call returns a future of an pekko.remote.transport.AssociationHandle. A failed future indicates that the association attempt was unsuccessful. If the exception is pekko.remote.transport.Transport.InvalidAssociationException then the association request was invalid, and it is impossible to recover.
- remoteAddress
The address of the remote transport entity.
- returns
A status instance representing failure or a success containing an pekko.remote.transport.AssociationHandle
- abstract def isResponsibleFor(address: Address): Boolean
A function that decides whether the specific transport instance is responsible for delivering to a given address.
A function that decides whether the specific transport instance is responsible for delivering to a given address. The function must be thread-safe and non-blocking.
The purpose of this function is to resolve cases when the scheme part of an URL is not enough to resolve the correct transport i.e. multiple instances of the same transport implementation are loaded. These cases arise when
- the same transport, but with different configurations is used for different remote systems
- a transport is able to serve one address only (hardware protocols, e.g. Serial port) and multiple instances are needed to be loaded for different endpoints.
- returns
whether the transport instance is responsible to serve communications to the given address.
- abstract def listen: Future[(Address, Promise[AssociationEventListener])]
Asynchronously attempts to setup the transport layer to listen and accept incoming associations.
Asynchronously attempts to setup the transport layer to listen and accept incoming associations. The result of the attempt is wrapped by a Future returned by this method. The pair contained in the future contains a Promise for an ActorRef. By completing this Promise with an pekko.remote.transport.Transport.AssociationEventListener, that listener becomes responsible for handling incoming associations. Until the Promise is not completed, no associations are processed.
- returns
A Future containing a pair of the bound local address and a Promise of an AssociationListener that must be completed by the consumer of the future.
- abstract def maximumPayloadBytes: Int
Defines the maximum size of payload this transport is able to deliver.
Defines the maximum size of payload this transport is able to deliver. All transports MUST support at least 32kBytes (32000 octets) of payload, but some MAY support larger sizes.
- abstract def schemeIdentifier: String
Returns a string that will be used as the scheme part of the URLs corresponding to this transport
Returns a string that will be used as the scheme part of the URLs corresponding to this transport
- returns
the scheme string
- abstract def shutdown(): Future[Boolean]
Shuts down the transport layer and releases all the corresponding resources.
Shuts down the transport layer and releases all the corresponding resources. Shutdown is asynchronous signalling the end of the shutdown by completing the returned future.
The transport SHOULD try flushing pending writes before becoming completely closed.
- returns
Future signalling the completion of shutdown
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (Transport, B)
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
- def ensuring(cond: (Transport) => Boolean, msg: => Any): Transport
- def ensuring(cond: (Transport) => Boolean): Transport
- def ensuring(cond: Boolean, msg: => Any): Transport
- def ensuring(cond: Boolean): Transport
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def managementCommand(cmd: Any): Future[Boolean]
This method allows upper layers to send management commands to the transport.
This method allows upper layers to send management commands to the transport. It is the responsibility of the sender to send appropriate commands to different transport implementations. Unknown commands will be ignored.
- cmd
Command message to the transport
- returns
Future that succeeds when the command was handled or dropped
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- 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(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Transport toStringFormat[Transport] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (Transport, B)
- Implicit
- This member is added by an implicit conversion from Transport toArrowAssoc[Transport] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.