Package io.servicetalk.client.api
Class DelegatingConnectionFactory<ResolvedAddress,C extends ListenableAsyncCloseable>
- java.lang.Object
-
- io.servicetalk.client.api.DelegatingConnectionFactory<ResolvedAddress,C>
-
- Type Parameters:
ResolvedAddress
- The type of a resolved address that can be used for connecting.C
- The type of connections created by this factory.
- All Implemented Interfaces:
ConnectionFactory<ResolvedAddress,C>
,AsyncCloseable
,ListenableAsyncCloseable
public class DelegatingConnectionFactory<ResolvedAddress,C extends ListenableAsyncCloseable> extends java.lang.Object implements ConnectionFactory<ResolvedAddress,C>
AConnectionFactory
that delegates all methods to anotherConnectionFactory
.
-
-
Constructor Summary
Constructors Constructor Description DelegatingConnectionFactory(ConnectionFactory<ResolvedAddress,C> delegate)
Create a 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 ConnectionFactory<ResolvedAddress,C>
delegate()
Returns theConnectionFactory
delegate.Single<C>
newConnection(ResolvedAddress resolvedAddress, TransportObserver observer)
Creates and asynchronously returns a connection.Completable
onClose()
Returns aCompletable
that is notified once theListenableAsyncCloseable
was closed.
-
-
-
Constructor Detail
-
DelegatingConnectionFactory
public DelegatingConnectionFactory(ConnectionFactory<ResolvedAddress,C> delegate)
Create a new instance.- Parameters:
delegate
-ConnectionFactory
to which all methods are delegated.
-
-
Method Detail
-
newConnection
public Single<C> newConnection(ResolvedAddress resolvedAddress, @Nullable TransportObserver observer)
Description copied from interface:ConnectionFactory
Creates and asynchronously returns a connection.- Specified by:
newConnection
in interfaceConnectionFactory<ResolvedAddress,C extends ListenableAsyncCloseable>
- Parameters:
resolvedAddress
- to connect.observer
-TransportObserver
for the newly created connection.- Returns:
Single
that emits the created connection.
-
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.
-
delegate
protected ConnectionFactory<ResolvedAddress,C> delegate()
Returns theConnectionFactory
delegate.- Returns:
- Delegate
ConnectionFactory
.
-
-