Interface ChannelDownstreamHandler
-
- All Superinterfaces:
ChannelHandler
- All Known Implementing Classes:
AbstractTrafficShapingHandler
,Base64Encoder
,BufferedWriteHandler
,ChannelTrafficShapingHandler
,ChunkedWriteHandler
,CompatibleMarshallingEncoder
,CompatibleObjectEncoder
,ExecutionHandler
,GlobalChannelTrafficShapingHandler
,GlobalTrafficShapingHandler
,HttpClientCodec
,HttpContentCompressor
,HttpContentEncoder
,HttpMessageEncoder
,HttpRequestEncoder
,HttpResponseEncoder
,HttpServerCodec
,IdleStateAwareChannelHandler
,JdkZlibEncoder
,LengthFieldPrepender
,LoggingHandler
,MarshallingEncoder
,NumberEncoder
,ObjectEncoder
,OneToOneEncoder
,OneToOneStrictEncoder
,ProtobufEncoder
,ProtobufVarint32LengthFieldPrepender
,RtspMessageEncoder
,RtspRequestEncoder
,RtspResponseEncoder
,SimpleChannelDownstreamHandler
,SimpleChannelHandler
,SocksMessageEncoder
,SpdyFrameCodec
,SpdyHttpCodec
,SpdyHttpEncoder
,SpdyHttpResponseStreamIdHandler
,SpdySessionHandler
,SslHandler
,StringEncoder
,WebSocket00FrameEncoder
,WebSocket07FrameEncoder
,WebSocket08FrameEncoder
,WebSocket13FrameEncoder
,WriteTimeoutHandler
,ZlibEncoder
public interface ChannelDownstreamHandler extends ChannelHandler
Handles or intercepts a downstreamChannelEvent
, and sends aChannelEvent
to the next handler in aChannelPipeline
.The most common use case of this interface is to intercept an I/O request such as
Channel.write(Object)
andChannel.close()
.SimpleChannelDownstreamHandler
In most cases, you will get to use a
SimpleChannelDownstreamHandler
to implement a downstream handler because it provides an individual handler method for each event type. You might want to implement this interface directly though if you want to handle various types of events in more generic way.Firing an event to the next handler
You can forward the received event downstream or upstream. In most cases,
ChannelDownstreamHandler
will send the event downstream (i.e. outbound) although it is legal to send the event upstream (i.e. inbound):// Sending the event downstream (outbound) void handleDownstream(
ChannelHandlerContext
ctx,ChannelEvent
e) throws Exception { ... ctx.sendDownstream(e); ... } // Sending the event upstream (inbound) void handleDownstream(ChannelHandlerContext
ctx,ChannelEvent
e) throws Exception { ... ctx.sendUpstream(newUpstreamChannelStateEvent
(...)); ... }Using the helper class to send an event
You will also find various helper methods in
Channels
to be useful to generate and send an artificial or manipulated event.Caution:
Use the *Later(..) methods of the
Channels
class if you want to send an upstream event from aChannelDownstreamHandler
otherwise you may run into threading issues.State management
Please refer toChannelHandler
.Thread safety
handleDownstream
may be invoked by more than one thread simultaneously. If the handler accesses a shared resource or stores stateful information, you might need proper synchronization in the handler implementation.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.jboss.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
handleDownstream(ChannelHandlerContext ctx, ChannelEvent e)
Handles the specified downstream event.
-
-
-
Method Detail
-
handleDownstream
void handleDownstream(ChannelHandlerContext ctx, ChannelEvent e) throws Exception
Handles the specified downstream event.- Parameters:
ctx
- the context object for this handlere
- the downstream event to process or intercept- Throws:
Exception
-
-