Package io.servicetalk.transport.api
Class DelegatingConnectionContext
- java.lang.Object
-
- io.servicetalk.transport.api.DelegatingConnectionContext
-
- All Implemented Interfaces:
AsyncCloseable
,ListenableAsyncCloseable
,ConnectionContext
,ConnectionInfo
- Direct Known Subclasses:
DelegatingHttpConnectionContext
public class DelegatingConnectionContext extends java.lang.Object implements ConnectionContext
AConnectionContext
implementation that delegates all calls to a providedConnectionContext
. Any of the methods can be overridden by implementations to change the behavior.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.servicetalk.transport.api.ConnectionInfo
ConnectionInfo.Protocol
-
-
Constructor Summary
Constructors Constructor Description DelegatingConnectionContext(ConnectionContext delegate)
New instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Completable
closeAsync()
Used to close/shutdown a resource.Completable
closeAsyncGracefully()
Used to close/shutdown a resource, similar toAsyncCloseable.closeAsync()
, but attempts to cleanup state before abruptly closing.protected ConnectionContext
delegate()
Get theConnectionContext
that this class delegates to.ExecutionContext
executionContext()
Get theExecutionContext
for thisConnectionInfo
.java.net.SocketAddress
localAddress()
TheSocketAddress
to which the associated connection is bound.Completable
onClose()
Returns aCompletable
that is notified once theListenableAsyncCloseable
was closed.ConnectionInfo.Protocol
protocol()
Get theConnectionInfo.Protocol
for thisConnectionInfo
.java.net.SocketAddress
remoteAddress()
TheSocketAddress
to which the associated connection is connected.<T> T
socketOption(java.net.SocketOption<T> option)
javax.net.ssl.SSLSession
sslSession()
Get theSSLSession
for this connection.java.lang.String
toString()
-
-
-
Constructor Detail
-
DelegatingConnectionContext
public DelegatingConnectionContext(ConnectionContext delegate)
New instance.- Parameters:
delegate
-ConnectionContext
to delegate all calls.
-
-
Method Detail
-
delegate
protected ConnectionContext delegate()
Get theConnectionContext
that this class delegates to.- Returns:
- the
ConnectionContext
that this class delegates to.
-
localAddress
public java.net.SocketAddress localAddress()
Description copied from interface:ConnectionInfo
TheSocketAddress
to which the associated connection is bound.- Specified by:
localAddress
in interfaceConnectionInfo
- Returns:
- The
SocketAddress
to which the associated connection is bound.
-
remoteAddress
public java.net.SocketAddress remoteAddress()
Description copied from interface:ConnectionInfo
TheSocketAddress
to which the associated connection is connected.- Specified by:
remoteAddress
in interfaceConnectionInfo
- Returns:
- The
SocketAddress
to which the associated connection is connected.
-
sslSession
@Nullable public javax.net.ssl.SSLSession sslSession()
Description copied from interface:ConnectionInfo
Get theSSLSession
for this connection.- Specified by:
sslSession
in interfaceConnectionInfo
- Returns:
- The
SSLSession
if SSL/TLS is enabled, ornull
otherwise.
-
executionContext
public ExecutionContext executionContext()
Description copied from interface:ConnectionInfo
Get theExecutionContext
for thisConnectionInfo
.The
ExecutionContext.ioExecutor()
will represent the thread responsible for IO for thisConnectionInfo
. Note that this maybe different that what was used to create this object because at this time a specificIoExecutor
has been selected.- Specified by:
executionContext
in interfaceConnectionInfo
- Returns:
- the
ExecutionContext
for thisConnectionInfo
.
-
socketOption
public <T> T socketOption(java.net.SocketOption<T> option)
Description copied from interface:ConnectionInfo
- Specified by:
socketOption
in interfaceConnectionInfo
- Type Parameters:
T
- the type of theSocketOption
value.- Parameters:
option
-SocketOption
to get.- Returns:
- the
SocketOption
value of typeT
for thisConnectionInfo
ornull
if thisSocketOption
is not supported by thisConnectionInfo
. - See Also:
StandardSocketOptions
,ServiceTalkSocketOptions
-
protocol
public ConnectionInfo.Protocol protocol()
Description copied from interface:ConnectionInfo
Get theConnectionInfo.Protocol
for thisConnectionInfo
.- Specified by:
protocol
in interfaceConnectionInfo
- Returns:
- the
ConnectionInfo.Protocol
for thisConnectionInfo
.
-
onClose
public Completable onClose()
Description copied from interface:ListenableAsyncCloseable
Returns aCompletable
that is notified once theListenableAsyncCloseable
was closed.- Specified by:
onClose
in interfaceListenableAsyncCloseable
- Returns:
- the
Completable
that is notified on close.
-
closeAsync
public Completable closeAsync()
Description copied from interface:AsyncCloseable
Used to close/shutdown a resource.- Specified by:
closeAsync
in interfaceAsyncCloseable
- Returns:
- A
Completable
that is notified once the close is complete.
-
closeAsyncGracefully
public Completable closeAsyncGracefully()
Description copied from interface:AsyncCloseable
Used to close/shutdown a resource, similar toAsyncCloseable.closeAsync()
, but attempts to cleanup state before abruptly closing. This provides a hint that implementations can use to stop accepting new work and finish in flight work. This method is implemented on a "best effort" basis and may be equivalent toAsyncCloseable.closeAsync()
.Note: Implementations may or may not apply a timeout for this operation to complete, if a caller does not want to wait indefinitely, and are unsure if the implementation applies a timeout, it is advisable to apply a timeout and force a call to
AsyncCloseable.closeAsync()
.- Specified by:
closeAsyncGracefully
in interfaceAsyncCloseable
- Returns:
- A
Completable
that is notified once the close is complete.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-