org.jboss.netty.channel
Class SimpleChannelUpstreamHandler

java.lang.Object
  extended by org.jboss.netty.channel.SimpleChannelUpstreamHandler
All Implemented Interfaces:
ChannelHandler, ChannelUpstreamHandler
Direct Known Subclasses:
BlockingReadHandler, FrameDecoder, HttpChunkAggregator, HttpContentDecoder, IdleStateAwareChannelUpstreamHandler, IdleStateHandler, ReadTimeoutHandler, ReplayingDecoder

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);
     }
 }

Version:
$Rev: 2122 $, $Date: 2010-02-02 11:00:04 +0900 (Tue, 02 Feb 2010) $
Author:
The Netty Project, Trustin Lee

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jboss.netty.channel.ChannelHandler
ChannelHandler.Sharable
 
Constructor Summary
SimpleChannelUpstreamHandler()
          Creates a new instance.
 
Method Summary
 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


Copyright © 2008-2011 JBoss, a division of Red Hat, Inc.. All Rights Reserved.