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

    Constructors
    Constructor
    Description
    ShutdownableChannelGroup(io.netty.util.concurrent.EventExecutor executor)
    Creates a new group with a generated name and the provided EventExecutor to notify the ChannelGroupFutures.
    ShutdownableChannelGroup(io.netty.util.concurrent.EventExecutor executor, boolean stayClosed)
    Creates a new group with a generated name and the provided EventExecutor to notify the ChannelGroupFutures.
    ShutdownableChannelGroup(String name, io.netty.util.concurrent.EventExecutor executor)
    Creates a new group with the specified name and EventExecutor to notify the ChannelGroupFutures.
    ShutdownableChannelGroup(String name, io.netty.util.concurrent.EventExecutor executor, boolean stayClosed)
    Creates a new group with the specified name and EventExecutor to notify the ChannelGroupFutures.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    int
     
    boolean
    Returns true if this resource has been shut down.
    boolean
    Returns true if the resource has completed shutting down.
    void
    Starts the shutdown process.
    void
    Waits for shutdown to complete
    void
    waitForShutdown(long timeoutInMs)
    Waits for shutdown to complete with a timeout

    Methods 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.lang.Iterable

    forEach

    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 provided EventExecutor to notify the ChannelGroupFutures.
      Parameters:
      executor -
    • ShutdownableChannelGroup

      public ShutdownableChannelGroup(String name, io.netty.util.concurrent.EventExecutor executor)
      Creates a new group with the specified name and EventExecutor to notify the ChannelGroupFutures. 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 provided EventExecutor to notify the ChannelGroupFutures. 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 specified name and EventExecutor to notify the ChannelGroupFutures. 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

      public boolean equals(Object o)
      Specified by:
      equals in interface Collection<io.netty.channel.Channel>
      Specified by:
      equals in interface Set<io.netty.channel.Channel>
      Overrides:
      equals in class io.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 interface ShutdownableResource
      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 interface ShutdownableResource
      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 interface Shutdownable
    • waitForShutdown

      public void waitForShutdown() throws InterruptedException, IllegalStateException
      Description copied from interface: Shutdownable
      Waits for shutdown to complete
      Specified by:
      waitForShutdown in interface Shutdownable
      Throws:
      InterruptedException - when the wait is interrupted
      IllegalStateException - 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 interface Shutdownable
      Parameters:
      timeoutInMs - number of milliseconds to wait before throwing TimeoutException
      Throws:
      InterruptedException - when the wait is interrupted
      IllegalStateException - when the method is invoked when the shutdown has yet to be started
      TimeoutException - when the operation times out
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface Collection<io.netty.channel.Channel>
      Specified by:
      hashCode in interface Set<io.netty.channel.Channel>
      Overrides:
      hashCode in class io.netty.channel.group.DefaultChannelGroup