org.jboss.netty.channel

## Class Channels

- java.lang.Object
- - org.jboss.netty.channel.Channels

-     public final class Channels
      extends Object

  A helper class which provides various convenience methods related with `Channel`, `ChannelHandler`, and `ChannelPipeline`.

  ### Factory methods

  It is always recommended to use the factory methods provided by `Channels` rather than calling the constructor of the implementation types.

  - `pipeline()`
  - `pipeline(ChannelPipeline)`
  - `pipelineFactory(ChannelPipeline)`
  - `succeededFuture(Channel)`
  - `failedFuture(Channel, Throwable)`

  ### Upstream and downstream event generation

  Various event generation methods are provided to simplify the generation of upstream events and downstream events. It is always recommended to use the event generation methods provided by `Channels` rather than calling `ChannelHandlerContext.sendUpstream(ChannelEvent)` or `ChannelHandlerContext.sendDownstream(ChannelEvent)` by yourself.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `bind(ChannelHandlerContext ctx, ChannelFuture future, SocketAddress localAddress)` Sends a `"bind"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
    `static ChannelFuture` | `bind(Channel channel, SocketAddress localAddress)` Sends a `"bind"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static ChannelFuture` | `close(Channel channel)` Sends a `"close"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `close(ChannelHandlerContext ctx, ChannelFuture future)` Sends a `"close"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `connect(ChannelHandlerContext ctx, ChannelFuture future, SocketAddress remoteAddress)` Sends a `"connect"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
    `static ChannelFuture` | `connect(Channel channel, SocketAddress remoteAddress)` Sends a `"connect"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static ChannelFuture` | `disconnect(Channel channel)` Sends a `"disconnect"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `disconnect(ChannelHandlerContext ctx, ChannelFuture future)` Sends a `"disconnect"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
    `static ChannelFuture` | `failedFuture(Channel channel, Throwable cause)` Creates a new `ChannelFuture` which has failed already for the specified `Channel`.
    `static void` | `fireChannelBound(ChannelHandlerContext ctx, SocketAddress localAddress)` Sends a `"channelBound"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `fireChannelBound(Channel channel, SocketAddress localAddress)` Sends a `"channelBound"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `fireChannelClosed(Channel channel)` Sends a `"channelClosed"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `fireChannelClosed(ChannelHandlerContext ctx)` Sends a `"channelClosed"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static ChannelFuture` | `fireChannelClosedLater(Channel channel)` Sends a `"channelClosed"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.
    `static void` | `fireChannelConnected(ChannelHandlerContext ctx, SocketAddress remoteAddress)` Sends a `"channelConnected"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `fireChannelConnected(Channel channel, SocketAddress remoteAddress)` Sends a `"channelConnected"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `fireChannelDisconnected(Channel channel)` Sends a `"channelDisconnected"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `fireChannelDisconnected(ChannelHandlerContext ctx)` Sends a `"channelDisconnected"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static ChannelFuture` | `fireChannelDisconnectedLater(Channel channel)` Sends a `"channelDisconnected"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.
    `static void` | `fireChannelInterestChanged(Channel channel)` Sends a `"channelInterestChanged"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `fireChannelInterestChanged(ChannelHandlerContext ctx)` Sends a `"channelInterestChanged"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static ChannelFuture` | `fireChannelInterestChangedLater(Channel channel)` Sends a `"channelInterestChanged"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.
    `static void` | `fireChannelOpen(Channel channel)` Sends a `"channelOpen"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `fireChannelOpen(ChannelHandlerContext ctx)` Sends a `"channelOpen"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `fireChannelUnbound(Channel channel)` Sends a `"channelUnbound"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `fireChannelUnbound(ChannelHandlerContext ctx)` Sends a `"channelUnbound"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static ChannelFuture` | `fireChannelUnboundLater(Channel channel)` Sends a `"channelUnbound"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.
    `static void` | `fireExceptionCaught(ChannelHandlerContext ctx, Throwable cause)` Sends a `"exceptionCaught"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `fireExceptionCaught(Channel channel, Throwable cause)` Sends a `"exceptionCaught"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static ChannelFuture` | `fireExceptionCaughtLater(ChannelHandlerContext ctx, Throwable cause)` Sends a `"exceptionCaught"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext` once the io-thread runs again.
    `static ChannelFuture` | `fireExceptionCaughtLater(Channel channel, Throwable cause)` Sends a `"exceptionCaught"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.
    `static void` | `fireMessageReceived(ChannelHandlerContext ctx, Object message)` Sends a `"messageReceived"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `fireMessageReceived(ChannelHandlerContext ctx, Object message, SocketAddress remoteAddress)` Sends a `"messageReceived"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `fireMessageReceived(Channel channel, Object message)` Sends a `"messageReceived"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `fireMessageReceived(Channel channel, Object message, SocketAddress remoteAddress)` Sends a `"messageReceived"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` belongs.
    `static void` | `fireWriteComplete(ChannelHandlerContext ctx, long amount)` Sends a `"writeComplete"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `fireWriteComplete(Channel channel, long amount)` Sends a `"writeComplete"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static ChannelFuture` | `fireWriteCompleteLater(Channel channel, long amount)` Sends a `"writeComplete"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` in the next io-thread.
    `static ChannelFuture` | `future(Channel channel)` Creates a new non-cancellable `ChannelFuture` for the specified `Channel`.
    `static ChannelFuture` | `future(Channel channel, boolean cancellable)` Creates a new `ChannelFuture` for the specified `Channel`.
    `static ChannelPipeline` | `pipeline()` Creates a new `ChannelPipeline`.
    `static ChannelPipeline` | `pipeline(ChannelHandler... handlers)` Creates a new `ChannelPipeline` which contains the specified `ChannelHandler`s.
    `static ChannelPipeline` | `pipeline(ChannelPipeline pipeline)` Creates a new `ChannelPipeline` which contains the same entries with the specified `pipeline`.
    `static ChannelPipelineFactory` | `pipelineFactory(ChannelPipeline pipeline)` Creates a new `ChannelPipelineFactory` which creates a new `ChannelPipeline` which contains the same entries with the specified `pipeline`.
    `static void` | `setInterestOps(ChannelHandlerContext ctx, ChannelFuture future, int interestOps)` Sends a `"setInterestOps"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
    `static ChannelFuture` | `setInterestOps(Channel channel, int interestOps)` Sends a `"setInterestOps"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static ChannelFuture` | `succeededFuture(Channel channel)` Creates a new `ChannelFuture` which is already succeeded for the specified `Channel`.
    `static ChannelFuture` | `unbind(Channel channel)` Sends a `"unbind"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static void` | `unbind(ChannelHandlerContext ctx, ChannelFuture future)` Sends a `"unbind"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `write(ChannelHandlerContext ctx, ChannelFuture future, Object message)` Sends a `"write"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
    `static void` | `write(ChannelHandlerContext ctx, ChannelFuture future, Object message, SocketAddress remoteAddress)` Sends a `"write"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
    `static ChannelFuture` | `write(Channel channel, Object message)` Sends a `"write"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
    `static ChannelFuture` | `write(Channel channel, Object message, SocketAddress remoteAddress)` Sends a `"write"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### pipeline

          public static ChannelPipeline pipeline()

      Creates a new `ChannelPipeline`.

    - #### pipeline

          public static ChannelPipeline pipeline(ChannelHandler... handlers)

      Creates a new `ChannelPipeline` which contains the specified `ChannelHandler`s. The names of the specified handlers are generated automatically; the first handler's name is `"0"`, the second handler's name is `"1"`, the third handler's name is `"2"`, and so on.

    - #### pipeline

          public static ChannelPipeline pipeline(ChannelPipeline pipeline)

      Creates a new `ChannelPipeline` which contains the same entries with the specified `pipeline`. Please note that only the names and the references of the `ChannelHandler`s will be copied; a new `ChannelHandler` instance will never be created.

    - #### pipelineFactory

          public static ChannelPipelineFactory pipelineFactory(ChannelPipeline pipeline)

      Creates a new `ChannelPipelineFactory` which creates a new `ChannelPipeline` which contains the same entries with the specified `pipeline`. Please note that only the names and the references of the `ChannelHandler`s will be copied; a new `ChannelHandler` instance will never be created.

    - #### future

          public static ChannelFuture future(Channel channel)

      Creates a new non-cancellable `ChannelFuture` for the specified `Channel`.

    - #### future

          public static ChannelFuture future(Channel channel,
                             boolean cancellable)

      Creates a new `ChannelFuture` for the specified `Channel`.
      Parameters:
        `cancellable` - `true` if and only if the returned future can be canceled by `ChannelFuture.cancel()`

    - #### succeededFuture

          public static ChannelFuture succeededFuture(Channel channel)

      Creates a new `ChannelFuture` which is already succeeded for the specified `Channel`.

    - #### failedFuture

          public static ChannelFuture failedFuture(Channel channel,
                                   Throwable cause)

      Creates a new `ChannelFuture` which has failed already for the specified `Channel`.
      Parameters:
        `cause` - the cause of the failure

    - #### fireChannelOpen

          public static void fireChannelOpen(Channel channel)

      Sends a `"channelOpen"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`. If the specified channel has a parent, a `"childChannelOpen"` event will be sent, too.

    - #### fireChannelOpen

          public static void fireChannelOpen(ChannelHandlerContext ctx)

      Sends a `"channelOpen"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.

      Please note that this method does not trigger a `"childChannelOpen"` event unlike `fireChannelOpen(Channel)` method.

    - #### fireChannelBound

          public static void fireChannelBound(Channel channel,
                              SocketAddress localAddress)

      Sends a `"channelBound"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `localAddress` - the local address where the specified channel is bound

    - #### fireChannelBound

          public static void fireChannelBound(ChannelHandlerContext ctx,
                              SocketAddress localAddress)

      Sends a `"channelBound"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `localAddress` - the local address where the specified channel is bound

    - #### fireChannelConnected

          public static void fireChannelConnected(Channel channel,
                                  SocketAddress remoteAddress)

      Sends a `"channelConnected"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `remoteAddress` - the remote address where the specified channel is connected

    - #### fireChannelConnected

          public static void fireChannelConnected(ChannelHandlerContext ctx,
                                  SocketAddress remoteAddress)

      Sends a `"channelConnected"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `remoteAddress` - the remote address where the specified channel is connected

    - #### fireMessageReceived

          public static void fireMessageReceived(Channel channel,
                                 Object message)

      Sends a `"messageReceived"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `message` - the received message

    - #### fireMessageReceived

          public static void fireMessageReceived(Channel channel,
                                 Object message,
                                 SocketAddress remoteAddress)

      Sends a `"messageReceived"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` belongs.
      Parameters:
        `message` - the received message
        `remoteAddress` - the remote address where the received message came from

    - #### fireMessageReceived

          public static void fireMessageReceived(ChannelHandlerContext ctx,
                                 Object message)

      Sends a `"messageReceived"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `message` - the received message

    - #### fireMessageReceived

          public static void fireMessageReceived(ChannelHandlerContext ctx,
                                 Object message,
                                 SocketAddress remoteAddress)

      Sends a `"messageReceived"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `message` - the received message
        `remoteAddress` - the remote address where the received message came from

    - #### fireWriteCompleteLater

          public static ChannelFuture fireWriteCompleteLater(Channel channel,
                                             long amount)

      Sends a `"writeComplete"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` in the next io-thread.

    - #### fireWriteComplete

          public static void fireWriteComplete(Channel channel,
                               long amount)

      Sends a `"writeComplete"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.

    - #### fireWriteComplete

          public static void fireWriteComplete(ChannelHandlerContext ctx,
                               long amount)

      Sends a `"writeComplete"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.

    - #### fireChannelInterestChangedLater

          public static ChannelFuture fireChannelInterestChangedLater(Channel channel)

      Sends a `"channelInterestChanged"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.

    - #### fireChannelInterestChanged

          public static void fireChannelInterestChanged(Channel channel)

      Sends a `"channelInterestChanged"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.

    - #### fireChannelInterestChanged

          public static void fireChannelInterestChanged(ChannelHandlerContext ctx)

      Sends a `"channelInterestChanged"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.

    - #### fireChannelDisconnectedLater

          public static ChannelFuture fireChannelDisconnectedLater(Channel channel)

      Sends a `"channelDisconnected"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.

    - #### fireChannelDisconnected

          public static void fireChannelDisconnected(Channel channel)

      Sends a `"channelDisconnected"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.

    - #### fireChannelDisconnected

          public static void fireChannelDisconnected(ChannelHandlerContext ctx)

      Sends a `"channelDisconnected"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.

    - #### fireChannelUnboundLater

          public static ChannelFuture fireChannelUnboundLater(Channel channel)

      Sends a `"channelUnbound"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.

    - #### fireChannelUnbound

          public static void fireChannelUnbound(Channel channel)

      Sends a `"channelUnbound"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.

    - #### fireChannelUnbound

          public static void fireChannelUnbound(ChannelHandlerContext ctx)

      Sends a `"channelUnbound"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.

    - #### fireChannelClosedLater

          public static ChannelFuture fireChannelClosedLater(Channel channel)

      Sends a `"channelClosed"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.

    - #### fireChannelClosed

          public static void fireChannelClosed(Channel channel)

      Sends a `"channelClosed"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.

    - #### fireChannelClosed

          public static void fireChannelClosed(ChannelHandlerContext ctx)

      Sends a `"channelClosed"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.

    - #### fireExceptionCaughtLater

          public static ChannelFuture fireExceptionCaughtLater(Channel channel,
                                               Throwable cause)

      Sends a `"exceptionCaught"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel` once the io-thread runs again.

    - #### fireExceptionCaughtLater

          public static ChannelFuture fireExceptionCaughtLater(ChannelHandlerContext ctx,
                                               Throwable cause)

      Sends a `"exceptionCaught"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext` once the io-thread runs again.

    - #### fireExceptionCaught

          public static void fireExceptionCaught(Channel channel,
                                 Throwable cause)

      Sends a `"exceptionCaught"` event to the first `ChannelUpstreamHandler` in the `ChannelPipeline` of the specified `Channel`.

    - #### fireExceptionCaught

          public static void fireExceptionCaught(ChannelHandlerContext ctx,
                                 Throwable cause)

      Sends a `"exceptionCaught"` event to the `ChannelUpstreamHandler` which is placed in the closest upstream from the handler associated with the specified `ChannelHandlerContext`.

    - #### bind

          public static ChannelFuture bind(Channel channel,
                           SocketAddress localAddress)

      Sends a `"bind"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `channel` - the channel to bind
        `localAddress` - the local address to bind to
      Returns:
        the `ChannelFuture` which will be notified when the bind operation is done

    - #### bind

          public static void bind(ChannelHandlerContext ctx,
                  ChannelFuture future,
                  SocketAddress localAddress)

      Sends a `"bind"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `ctx` - the context
        `future` - the future which will be notified when the bind operation is done
        `localAddress` - the local address to bind to

    - #### unbind

          public static void unbind(ChannelHandlerContext ctx,
                    ChannelFuture future)

      Sends a `"unbind"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `ctx` - the context
        `future` - the future which will be notified when the unbind operation is done

    - #### unbind

          public static ChannelFuture unbind(Channel channel)

      Sends a `"unbind"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `channel` - the channel to unbind
      Returns:
        the `ChannelFuture` which will be notified when the unbind operation is done

    - #### connect

          public static ChannelFuture connect(Channel channel,
                              SocketAddress remoteAddress)

      Sends a `"connect"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `channel` - the channel to attempt a connection
        `remoteAddress` - the remote address to connect to
      Returns:
        the `ChannelFuture` which will be notified when the connection attempt is done

    - #### connect

          public static void connect(ChannelHandlerContext ctx,
                     ChannelFuture future,
                     SocketAddress remoteAddress)

      Sends a `"connect"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `ctx` - the context
        `future` - the future which will be notified when the connection attempt is done
        `remoteAddress` - the remote address to connect to

    - #### write

          public static ChannelFuture write(Channel channel,
                            Object message)

      Sends a `"write"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `channel` - the channel to write a message
        `message` - the message to write to the channel
      Returns:
        the `ChannelFuture` which will be notified when the write operation is done

    - #### write

          public static void write(ChannelHandlerContext ctx,
                   ChannelFuture future,
                   Object message)

      Sends a `"write"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `ctx` - the context
        `future` - the future which will be notified when the write operation is done

    - #### write

          public static ChannelFuture write(Channel channel,
                            Object message,
                            SocketAddress remoteAddress)

      Sends a `"write"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `channel` - the channel to write a message
        `message` - the message to write to the channel
        `remoteAddress` - the destination of the message. `null` to use the default remote address
      Returns:
        the `ChannelFuture` which will be notified when the write operation is done

    - #### write

          public static void write(ChannelHandlerContext ctx,
                   ChannelFuture future,
                   Object message,
                   SocketAddress remoteAddress)

      Sends a `"write"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `ctx` - the context
        `future` - the future which will be notified when the write operation is done
        `message` - the message to write to the channel
        `remoteAddress` - the destination of the message. `null` to use the default remote address.

    - #### setInterestOps

          public static ChannelFuture setInterestOps(Channel channel,
                                     int interestOps)

      Sends a `"setInterestOps"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `channel` - the channel to change its interestOps
        `interestOps` - the new interestOps
      Returns:
        the `ChannelFuture` which will be notified when the interestOps is changed

    - #### setInterestOps

          public static void setInterestOps(ChannelHandlerContext ctx,
                            ChannelFuture future,
                            int interestOps)

      Sends a `"setInterestOps"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `ctx` - the context
        `future` - the future which will be notified when the interestOps is changed.

    - #### disconnect

          public static ChannelFuture disconnect(Channel channel)

      Sends a `"disconnect"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `channel` - the channel to disconnect
      Returns:
        the `ChannelFuture` which will be notified on disconnection

    - #### disconnect

          public static void disconnect(ChannelHandlerContext ctx,
                        ChannelFuture future)

      Sends a `"disconnect"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `ctx` - the context
        `future` - the future which will be notified on disconnection

    - #### close

          public static ChannelFuture close(Channel channel)

      Sends a `"close"` request to the last `ChannelDownstreamHandler` in the `ChannelPipeline` of the specified `Channel`.
      Parameters:
        `channel` - the channel to close
      Returns:
        the `ChannelFuture` which will be notified on closure

    - #### close

          public static void close(ChannelHandlerContext ctx,
                   ChannelFuture future)

      Sends a `"close"` request to the `ChannelDownstreamHandler` which is placed in the closest downstream from the handler associated with the specified `ChannelHandlerContext`.
      Parameters:
        `ctx` - the context
        `future` - the future which will be notified on closure

Copyright © 2008-2012 The Netty Project. All Rights Reserved.