-
- All Superinterfaces:
ChannelInboundInvoker,ChannelOutboundInvoker,FuturePromiseFactory
- All Known Implementing Classes:
DelegatingChannelHandlerContext
public interface ChannelHandlerContext extends ChannelInboundInvoker, ChannelOutboundInvoker
Enables aChannelHandlerto interact with itsChannelPipelineand other handlers. Among other things a handler can notify the nextChannelHandlerin theChannelPipelineas well as modify theChannelPipelineit belongs to dynamically.Notify
You can notify the closest handler in the sameChannelPipelineby calling one of the various methods provided here. Please refer toChannelPipelineto understand how an event flows.Modifying a pipeline
You can get theChannelPipelineyour handler belongs to by callingpipeline(). A non-trivial application could insert, remove, or replace handlers in the pipeline dynamically at runtime.Retrieving for later use
You can keep theChannelHandlerContextfor later use, such as triggering an event outside the handler methods, even from a different thread.public class MyHandler extends
ChannelHandler{ privateChannelHandlerContextctx; public void handlerAdded(ChannelHandlerContextctx) { this.ctx = ctx; } public void login(String username, password) { ctx.write(new LoginMessage(username, password)); } ... }A handler can have more than one context
Please note that aChannelHandlerinstance can be added to more than oneChannelPipeline. It means a singleChannelHandlerinstance can have more than oneChannelHandlerContextand therefore the single instance can be invoked with differentChannelHandlerContexts if it is added to one or moreChannelPipelines more than once.Additional resources worth reading
Please refer to the
ChannelHandler, andChannelPipelineto find out more about inbound and outbound operations, what fundamental differences they have, how they flow in a pipeline, and how to handle the operation in your application.
-
-
Method Summary
-
Methods inherited from interface io.netty5.channel.ChannelOutboundInvoker
bind, close, connect, connect, deregister, disconnect, executor, newFailedFuture, newPromise, newSucceededFuture, newSucceededFuture, register, sendOutboundEvent, shutdown, write, writeAndFlush
-
-
-
-
Method Detail
-
channel
default Channel channel()
Return theChannelwhich is bound to theChannelHandlerContext.
-
name
String name()
The unique name of theChannelHandlerContext.The name was used when thenChannelHandlerwas added to theChannelPipeline. This name can also be used to access the registeredChannelHandlerfrom theChannelPipeline.
-
handler
ChannelHandler handler()
TheChannelHandlerthat is bound thisChannelHandlerContext.
-
isRemoved
boolean isRemoved()
Returntrueif theChannelHandlerwhich belongs to this context was removed from theChannelPipeline.
-
fireChannelRegistered
ChannelHandlerContext fireChannelRegistered()
Description copied from interface:ChannelInboundInvokerAChannelwas registered to itsEventLoop. This will result in having theChannelHandler.channelRegistered(ChannelHandlerContext)method called of the nextChannelHandlercontained in theChannelPipelineof theChannel.- Specified by:
fireChannelRegisteredin interfaceChannelInboundInvoker
-
fireChannelUnregistered
ChannelHandlerContext fireChannelUnregistered()
Description copied from interface:ChannelInboundInvokerAChannelwas unregistered from itsEventLoop. This will result in having theChannelHandler.channelUnregistered(ChannelHandlerContext)method called of the nextChannelHandlercontained in theChannelPipelineof theChannel.- Specified by:
fireChannelUnregisteredin interfaceChannelInboundInvoker
-
fireChannelActive
ChannelHandlerContext fireChannelActive()
Description copied from interface:ChannelInboundInvokerAChannelis active now, which means it is connected. This will result in having theChannelHandler.channelActive(ChannelHandlerContext)method called of the nextChannelHandlercontained in theChannelPipelineof theChannel.- Specified by:
fireChannelActivein interfaceChannelInboundInvoker
-
fireChannelInactive
ChannelHandlerContext fireChannelInactive()
Description copied from interface:ChannelInboundInvokerAChannelis inactive now, which means it is closed. This will result in having theChannelHandler.channelInactive(ChannelHandlerContext)method called of the nextChannelHandlercontained in theChannelPipelineof theChannel.- Specified by:
fireChannelInactivein interfaceChannelInboundInvoker
-
fireChannelShutdown
ChannelHandlerContext fireChannelShutdown(ChannelShutdownDirection direction)
Description copied from interface:ChannelInboundInvokerAChannelwas shutdown in a specific direction. This will result in having theChannelHandler.channelShutdown(ChannelHandlerContext, ChannelShutdownDirection)method called of the nextChannelHandlercontained in theChannelPipelineof theChannel.- Specified by:
fireChannelShutdownin interfaceChannelInboundInvoker
-
fireChannelExceptionCaught
ChannelHandlerContext fireChannelExceptionCaught(Throwable cause)
Description copied from interface:ChannelInboundInvokerAChannelreceived anThrowablein one of its inbound operations. This will result in having theChannelHandler.channelExceptionCaught(ChannelHandlerContext, Throwable)method called of the nextChannelHandlercontained in theChannelPipelineof theChannel.- Specified by:
fireChannelExceptionCaughtin interfaceChannelInboundInvoker
-
fireChannelInboundEvent
ChannelHandlerContext fireChannelInboundEvent(Object evt)
Description copied from interface:ChannelInboundInvokerAChannelreceived a custom defined inbound event. This will result in having theChannelHandler.channelInboundEvent(ChannelHandlerContext, Object)method called of the nextChannelHandlercontained in theChannelPipelineof theChannel.- Specified by:
fireChannelInboundEventin interfaceChannelInboundInvoker
-
fireChannelRead
ChannelHandlerContext fireChannelRead(Object msg)
Description copied from interface:ChannelInboundInvokerAChannelreceived a message. This will result in having theChannelHandler.channelRead(ChannelHandlerContext, Object)method called of the nextChannelHandlercontained in theChannelPipelineof theChannel.- Specified by:
fireChannelReadin interfaceChannelInboundInvoker
-
fireChannelReadComplete
ChannelHandlerContext fireChannelReadComplete()
Description copied from interface:ChannelInboundInvokerTriggers anChannelHandler.channelReadComplete(ChannelHandlerContext)event to the nextChannelHandlerin theChannelPipeline.- Specified by:
fireChannelReadCompletein interfaceChannelInboundInvoker
-
fireChannelWritabilityChanged
ChannelHandlerContext fireChannelWritabilityChanged()
Description copied from interface:ChannelInboundInvokerTriggers anChannelHandler.channelWritabilityChanged(ChannelHandlerContext)event to the nextChannelHandlerin theChannelPipeline.- Specified by:
fireChannelWritabilityChangedin interfaceChannelInboundInvoker
-
read
ChannelHandlerContext read()
Description copied from interface:ChannelOutboundInvokerRequest to Read data from theChannelinto the first inbound buffer, triggers anChannelHandler.channelRead(ChannelHandlerContext, Object)event if data was read, and triggers achannelReadCompleteevent so the handler can decide to continue reading. If there's a pending read operation already, this method does nothing.This will result in having the
ChannelHandler.read(ChannelHandlerContext)method called of the nextChannelHandlercontained in theChannelPipelineof theChannel.- Specified by:
readin interfaceChannelOutboundInvoker
-
flush
ChannelHandlerContext flush()
Description copied from interface:ChannelOutboundInvokerRequest to flush all pending messages via this ChannelOutboundInvoker.- Specified by:
flushin interfaceChannelOutboundInvoker
-
pipeline
ChannelPipeline pipeline()
Return the assignedChannelPipeline
-
bufferAllocator
default BufferAllocator bufferAllocator()
Return the assignedBufferAllocatorwhich will be used to allocateBuffers.
-
-