Class NettyChannelListenableAsyncCloseable
- java.lang.Object
-
- io.servicetalk.transport.netty.internal.NettyChannelListenableAsyncCloseable
-
- All Implemented Interfaces:
AsyncCloseable
,ListenableAsyncCloseable
- Direct Known Subclasses:
DefaultNettyConnection
public class NettyChannelListenableAsyncCloseable extends java.lang.Object implements ListenableAsyncCloseable
ImplementsListenableAsyncCloseable
using a nettyChannel
.
-
-
Constructor Summary
Constructors Constructor Description NettyChannelListenableAsyncCloseable(io.netty.channel.Channel channel, Executor offloadingExecutor)
New instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected io.netty.channel.Channel
channel()
Get access to the underlyingChannel
.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 void
doCloseAsyncGracefully()
Initiate graceful closure.Completable
onClose()
Returns aCompletable
that is notified once theListenableAsyncCloseable
was closed.
-
-
-
Constructor Detail
-
NettyChannelListenableAsyncCloseable
public NettyChannelListenableAsyncCloseable(io.netty.channel.Channel channel, Executor offloadingExecutor)
New instance.- Parameters:
channel
- to use.offloadingExecutor
-Executor
used to offload any signals to any asynchronous created by thisNettyChannelListenableAsyncCloseable
which could interact with the EventLoop.
-
-
Method Detail
-
closeAsync
public final 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 final 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.
-
onClose
public final 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.
-
channel
protected final io.netty.channel.Channel channel()
Get access to the underlyingChannel
.- Returns:
- the underlying
Channel
.
-
doCloseAsyncGracefully
protected void doCloseAsyncGracefully()
Initiate graceful closure.
-
-