org.jboss.netty.handler.execution
Class ExecutionHandler

java.lang.Object
  extended by org.jboss.netty.handler.execution.ExecutionHandler
All Implemented Interfaces:
ChannelDownstreamHandler, ChannelHandler, ChannelUpstreamHandler, ExternalResourceReleasable

@ChannelPipelineCoverage(value="all")
public class ExecutionHandler
extends Object
implements ChannelUpstreamHandler, ChannelDownstreamHandler, ExternalResourceReleasable

Forwards an upstream ChannelEvent to an Executor.

You can implement various thread model by adding this handler to a ChannelPipeline. The most common use case of this handler is to add a ExecutionHandler which was specified with OrderedMemoryAwareThreadPoolExecutor:

 ChannelPipeline pipeline = ...;
 pipeline.addLast("decoder", new MyProtocolDecoder());
 pipeline.addLast("encoder", new MyProtocolEncoder());

 // HERE
 pipeline.addLast("executor", new ExecutionHandler(new OrderedMemoryAwareThreadPoolExecutor(16, 1048576, 1048576)));

 pipeline.addLast("handler", new MyBusinessLogicHandler());
 
to utilize more processors to handle ChannelEvents. You can also use other Executor implementation than the recommended OrderedMemoryAwareThreadPoolExecutor.

Version:
$Rev: 1685 $, $Date: 2009-08-28 16:15:49 +0900 (금, 28 8 2009) $
Author:
The Netty Project (netty-dev@lists.jboss.org), Trustin Lee (tlee@redhat.com)

Constructor Summary
ExecutionHandler(Executor executor)
          Creates a new instance with the specified Executor.
 
Method Summary
 Executor getExecutor()
          Returns the Executor which was specified with the constructor.
 void handleDownstream(ChannelHandlerContext ctx, ChannelEvent e)
          Handles the specified downstream event.
 void handleUpstream(ChannelHandlerContext context, ChannelEvent e)
          Handles the specified upstream event.
 void releaseExternalResources()
          Shuts down the Executor which was specified with the constructor and wait for its termination.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExecutionHandler

public ExecutionHandler(Executor executor)
Creates a new instance with the specified Executor. Specify an OrderedMemoryAwareThreadPoolExecutor if unsure.

Method Detail

getExecutor

public Executor getExecutor()
Returns the Executor which was specified with the constructor.


releaseExternalResources

public void releaseExternalResources()
Shuts down the Executor which was specified with the constructor and wait for its termination.

Specified by:
releaseExternalResources in interface ExternalResourceReleasable

handleUpstream

public void handleUpstream(ChannelHandlerContext context,
                           ChannelEvent e)
                    throws Exception
Description copied from interface: ChannelUpstreamHandler
Handles the specified upstream event.

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

handleDownstream

public void handleDownstream(ChannelHandlerContext ctx,
                             ChannelEvent e)
                      throws Exception
Description copied from interface: ChannelDownstreamHandler
Handles the specified downstream event.

Specified by:
handleDownstream in interface ChannelDownstreamHandler
Parameters:
ctx - the context object for this handler
e - the downstream event to process or intercept
Throws:
Exception


Copyright © 2008-2009 JBoss, by Red Hat. All Rights Reserved.