org.jboss.netty.channel

## Class SimpleChannelUpstreamHandler

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

All Implemented Interfaces:
  ChannelHandler, ChannelUpstreamHandler

Direct Known Subclasses:
  BlockingReadHandler, FrameDecoder, HttpChunkAggregator, HttpContentDecoder, IdleStateAwareChannelUpstreamHandler, IdleStateHandler, ReadTimeoutHandler, SpdySessionHandler

    public class SimpleChannelUpstreamHandler
    extends Object
    implements ChannelUpstreamHandler

A `ChannelUpstreamHandler` which provides an individual handler method for each event type. This handler down-casts the received upstream event into more meaningful sub-type event and calls an appropriate handler method with the down-cast event. The names of the methods are identical to the upstream event names, as introduced in the `ChannelEvent` documentation.

Please use `SimpleChannelHandler` if you need to implement both `ChannelUpstreamHandler` and `ChannelDownstreamHandler`.

### Overriding the `handleUpstream` method

You can override the `handleUpstream` method just like overriding an ordinary Java method. Please make sure to call `super.handleUpstream()` so that other handler methods are invoked properly:

    public class MyChannelHandler extends SimpleChannelUpstreamHandler {

         @Override
         public void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e) throws Exception {

             // Log all channel state changes.
             if (e instanceof ChannelStateEvent) {
                 logger.info("Channel state changed: " + e);
             }

             super.handleUpstream(ctx, e);
         }
     }

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.jboss.netty.channel.ChannelHandler

`ChannelHandler.Sharable`

### Constructor Summary

Constructors
Constructor and Description
`SimpleChannelUpstreamHandler()` Creates a new instance.

### Method Summary

Methods
`void` `channelBound(ChannelHandlerContext ctx, ChannelStateEvent e)` Invoked when a `Channel` is open and bound to a local address, but not connected.
`void` `channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e)` Invoked when a `Channel` was closed and all its related resources were released.
`void` `channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)` Invoked when a `Channel` is open, bound to a local address, and connected to a remote address.
`void` `channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e)` Invoked when a `Channel` was disconnected from its remote peer.
`void` `channelInterestChanged(ChannelHandlerContext ctx, ChannelStateEvent e)` Invoked when a `Channel`'s `interestOps` was changed.
`void` `channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e)` Invoked when a `Channel` is open, but not bound nor connected.
`void` `channelUnbound(ChannelHandlerContext ctx, ChannelStateEvent e)` Invoked when a `Channel` was unbound from the current local address.
`void` `childChannelClosed(ChannelHandlerContext ctx, ChildChannelStateEvent e)` Invoked when a child `Channel` was closed.
`void` `childChannelOpen(ChannelHandlerContext ctx, ChildChannelStateEvent e)` Invoked when a child `Channel` was open.
`void` `exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)` Invoked when an exception was raised by an I/O thread or a `ChannelHandler`.
`void` `handleUpstream(ChannelHandlerContext ctx, ChannelEvent e)` Handles the specified upstream event.
`void` `messageReceived(ChannelHandlerContext ctx, MessageEvent e)` Invoked when a message object (e.g: `ChannelBuffer`) was received from a remote peer.
`void` `writeComplete(ChannelHandlerContext ctx, WriteCompletionEvent e)` Invoked when something was written into a `Channel`.

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

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

### Constructor Detail

#### SimpleChannelUpstreamHandler

    public SimpleChannelUpstreamHandler()

Creates a new instance.

### Method Detail

#### handleUpstream

    public void handleUpstream(ChannelHandlerContext ctx,
                      ChannelEvent e)
                        throws Exception

Handles the specified upstream event. Down-casts the received upstream event into more meaningful sub-type event and calls an appropriate handler method with the down-casted event.

Specified by:
  `handleUpstream` in interface `ChannelUpstreamHandler`
Parameters:
  `ctx` - the context object for this handler
  `e` - the upstream event to process or intercept
Throws:
  `Exception`

#### messageReceived

    public void messageReceived(ChannelHandlerContext ctx,
                       MessageEvent e)
                         throws Exception

Invoked when a message object (e.g: `ChannelBuffer`) was received from a remote peer.

Throws:
  `Exception`

#### exceptionCaught

    public void exceptionCaught(ChannelHandlerContext ctx,
                       ExceptionEvent e)
                         throws Exception

Invoked when an exception was raised by an I/O thread or a `ChannelHandler`.

Throws:
  `Exception`

#### channelOpen

    public void channelOpen(ChannelHandlerContext ctx,
                   ChannelStateEvent e)
                     throws Exception

Invoked when a `Channel` is open, but not bound nor connected.
Be aware that this event is fired from within the Boss-Thread so you should not execute any heavy operation in there as it will block the dispatching to other workers!

Throws:
  `Exception`

#### channelBound

    public void channelBound(ChannelHandlerContext ctx,
                    ChannelStateEvent e)
                      throws Exception

Invoked when a `Channel` is open and bound to a local address, but not connected.
Be aware that this event is fired from within the Boss-Thread so you should not execute any heavy operation in there as it will block the dispatching to other workers!

Throws:
  `Exception`

#### channelConnected

    public void channelConnected(ChannelHandlerContext ctx,
                        ChannelStateEvent e)
                          throws Exception

Invoked when a `Channel` is open, bound to a local address, and connected to a remote address.
Be aware that this event is fired from within the Boss-Thread so you should not execute any heavy operation in there as it will block the dispatching to other workers!

Throws:
  `Exception`

#### channelInterestChanged

    public void channelInterestChanged(ChannelHandlerContext ctx,
                              ChannelStateEvent e)
                                throws Exception

Invoked when a `Channel`'s `interestOps` was changed.

Throws:
  `Exception`

#### channelDisconnected

    public void channelDisconnected(ChannelHandlerContext ctx,
                           ChannelStateEvent e)
                             throws Exception

Invoked when a `Channel` was disconnected from its remote peer.

Throws:
  `Exception`

#### channelUnbound

    public void channelUnbound(ChannelHandlerContext ctx,
                      ChannelStateEvent e)
                        throws Exception

Invoked when a `Channel` was unbound from the current local address.

Throws:
  `Exception`

#### channelClosed

    public void channelClosed(ChannelHandlerContext ctx,
                     ChannelStateEvent e)
                       throws Exception

Invoked when a `Channel` was closed and all its related resources were released.

Throws:
  `Exception`

#### writeComplete

    public void writeComplete(ChannelHandlerContext ctx,
                     WriteCompletionEvent e)
                       throws Exception

Invoked when something was written into a `Channel`.

Throws:
  `Exception`

#### childChannelOpen

    public void childChannelOpen(ChannelHandlerContext ctx,
                        ChildChannelStateEvent e)
                          throws Exception

Invoked when a child `Channel` was open. (e.g. a server channel accepted a connection)

Throws:
  `Exception`

#### childChannelClosed

    public void childChannelClosed(ChannelHandlerContext ctx,
                          ChildChannelStateEvent e)
                            throws Exception

Invoked when a child `Channel` was closed. (e.g. the accepted connection was closed)

Throws:
  `Exception`