Class ChannelSet
- java.lang.Object
-
- io.servicetalk.transport.netty.internal.ChannelSet
-
- All Implemented Interfaces:
AsyncCloseable,ListenableAsyncCloseable
public final class ChannelSet extends java.lang.Object implements ListenableAsyncCloseable
Manages a set ofChannels to provide a mechanism for closing all of them.Channels are removed from the set when they are closed.
-
-
Field Summary
Fields Modifier and Type Field Description static io.netty.util.AttributeKey<AsyncCloseable>CHANNEL_CLOSEABLE_KEY
-
Constructor Summary
Constructors Constructor Description ChannelSet(Executor offloadingExecutor)New instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddIfAbsent(io.netty.channel.Channel channel)Add aChannelto thisChannelSet, if it is not already present.CompletablecloseAsync()Used to close/shutdown a resource.CompletablecloseAsyncGracefully()Used to close/shutdown a resource, similar toAsyncCloseable.closeAsync(), but attempts to cleanup state before abruptly closing.CompletableonClose()Returns aCompletablethat is notified once theListenableAsyncCloseablewas closed.
-
-
-
Field Detail
-
CHANNEL_CLOSEABLE_KEY
public static final io.netty.util.AttributeKey<AsyncCloseable> CHANNEL_CLOSEABLE_KEY
-
-
Method Detail
-
addIfAbsent
public boolean addIfAbsent(io.netty.channel.Channel channel)
Add aChannelto thisChannelSet, if it is not already present.Channel.id()is used to check uniqueness.- Parameters:
channel- TheChannelto add.- Returns:
trueif the channel was added successfully,falseotherwise.
-
closeAsync
public Completable closeAsync()
Description copied from interface:AsyncCloseableUsed to close/shutdown a resource.- Specified by:
closeAsyncin interfaceAsyncCloseable- Returns:
- A
Completablethat is notified once the close is complete.
-
closeAsyncGracefully
public Completable closeAsyncGracefully()
Description copied from interface:AsyncCloseableUsed 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:
closeAsyncGracefullyin interfaceAsyncCloseable- Returns:
- A
Completablethat is notified once the close is complete.
-
onClose
public Completable onClose()
Description copied from interface:ListenableAsyncCloseableReturns aCompletablethat is notified once theListenableAsyncCloseablewas closed.- Specified by:
onClosein interfaceListenableAsyncCloseable- Returns:
- the
Completablethat is notified on close.
-
-