Class ShutdownableChannelGroup
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<io.netty.channel.Channel>
io.netty.channel.group.DefaultChannelGroup
com.linkedin.alpini.netty4.handlers.ShutdownableChannelGroup
- All Implemented Interfaces:
Shutdownable
,ShutdownableResource
,io.netty.channel.group.ChannelGroup
,Comparable<io.netty.channel.group.ChannelGroup>
,Iterable<io.netty.channel.Channel>
,Collection<io.netty.channel.Channel>
,Set<io.netty.channel.Channel>
public class ShutdownableChannelGroup
extends io.netty.channel.group.DefaultChannelGroup
implements ShutdownableResource
-
Constructor Summary
ConstructorDescriptionShutdownableChannelGroup
(io.netty.util.concurrent.EventExecutor executor) Creates a new group with a generated name and the providedEventExecutor
to notify theChannelGroupFuture
s.ShutdownableChannelGroup
(io.netty.util.concurrent.EventExecutor executor, boolean stayClosed) Creates a new group with a generated name and the providedEventExecutor
to notify theChannelGroupFuture
s.ShutdownableChannelGroup
(String name, io.netty.util.concurrent.EventExecutor executor) Creates a new group with the specifiedname
andEventExecutor
to notify theChannelGroupFuture
s.ShutdownableChannelGroup
(String name, io.netty.util.concurrent.EventExecutor executor, boolean stayClosed) Creates a new group with the specifiedname
andEventExecutor
to notify theChannelGroupFuture
s. -
Method Summary
Modifier and TypeMethodDescriptionboolean
int
hashCode()
boolean
Returns true if this resource has been shut down.boolean
Returns true if the resource has completed shutting down.void
shutdown()
Starts the shutdown process.void
Waits for shutdown to completevoid
waitForShutdown
(long timeoutInMs) Waits for shutdown to complete with a timeoutMethods inherited from class io.netty.channel.group.DefaultChannelGroup
add, clear, close, close, compareTo, contains, deregister, deregister, disconnect, disconnect, find, flush, flush, flushAndWrite, flushAndWrite, isEmpty, iterator, name, newCloseFuture, newCloseFuture, remove, size, toArray, toArray, toString, write, write, write, writeAndFlush, writeAndFlush, writeAndFlush
Methods inherited from class java.util.AbstractSet
removeAll
Methods inherited from class java.util.AbstractCollection
addAll, containsAll, retainAll
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.Set
addAll, containsAll, removeAll, retainAll, spliterator
-
Constructor Details
-
ShutdownableChannelGroup
public ShutdownableChannelGroup(io.netty.util.concurrent.EventExecutor executor) Creates a new group with a generated name and the providedEventExecutor
to notify theChannelGroupFuture
s.- Parameters:
executor
-
-
ShutdownableChannelGroup
Creates a new group with the specifiedname
andEventExecutor
to notify theChannelGroupFuture
s. Please note that different groups can have the same name, which means no duplicate check is done against group names.- Parameters:
name
-executor
-
-
ShutdownableChannelGroup
public ShutdownableChannelGroup(io.netty.util.concurrent.EventExecutor executor, boolean stayClosed) Creates a new group with a generated name and the providedEventExecutor
to notify theChannelGroupFuture
s.stayClosed
defines whether or not, this group can be closed more than once. Adding channels to a closed group will immediately close them, too. This makes it easy, to shutdown server and child channels at once.- Parameters:
executor
-stayClosed
-
-
ShutdownableChannelGroup
public ShutdownableChannelGroup(String name, io.netty.util.concurrent.EventExecutor executor, boolean stayClosed) Creates a new group with the specifiedname
andEventExecutor
to notify theChannelGroupFuture
s.stayClosed
defines whether or not, this group can be closed more than once. Adding channels to a closed group will immediately close them, too. This makes it easy, to shutdown server and child channels at once. Please note that different groups can have the same name, which means no duplicate check is done against group names.- Parameters:
name
-executor
-stayClosed
-
-
-
Method Details
-
equals
- Specified by:
equals
in interfaceCollection<io.netty.channel.Channel>
- Specified by:
equals
in interfaceSet<io.netty.channel.Channel>
- Overrides:
equals
in classio.netty.channel.group.DefaultChannelGroup
-
isShutdown
public boolean isShutdown()Description copied from interface:ShutdownableResource
Returns true if this resource has been shut down.- Specified by:
isShutdown
in interfaceShutdownableResource
- Returns:
- true if this resource has been shut down
-
isTerminated
public boolean isTerminated()Description copied from interface:ShutdownableResource
Returns true if the resource has completed shutting down. Note that isTerminated is never true unless shutdown was called first.- Specified by:
isTerminated
in interfaceShutdownableResource
- Returns:
- true if the resource has completed shutting down.
-
shutdown
public void shutdown()Description copied from interface:Shutdownable
Starts the shutdown process. It is recommended to perform the actual shutdown activity in a separate thread from the thread that calls shutdown- Specified by:
shutdown
in interfaceShutdownable
-
waitForShutdown
Description copied from interface:Shutdownable
Waits for shutdown to complete- Specified by:
waitForShutdown
in interfaceShutdownable
- Throws:
InterruptedException
- when the wait is interruptedIllegalStateException
- when the method is invoked when the shutdown has yet to be started
-
waitForShutdown
public void waitForShutdown(long timeoutInMs) throws InterruptedException, IllegalStateException, TimeoutException Description copied from interface:Shutdownable
Waits for shutdown to complete with a timeout- Specified by:
waitForShutdown
in interfaceShutdownable
- Parameters:
timeoutInMs
- number of milliseconds to wait before throwing TimeoutException- Throws:
InterruptedException
- when the wait is interruptedIllegalStateException
- when the method is invoked when the shutdown has yet to be startedTimeoutException
- when the operation times out
-
hashCode
public int hashCode()- Specified by:
hashCode
in interfaceCollection<io.netty.channel.Channel>
- Specified by:
hashCode
in interfaceSet<io.netty.channel.Channel>
- Overrides:
hashCode
in classio.netty.channel.group.DefaultChannelGroup
-