天天看點

netty源碼分析 之五 transport(ChannelHandler)接口方法ChannelHandlerAdapterChannelHandlerContext 接着看AbstractChannelHandlerContext ChannelHandlerInvokerSingleThreadEventLoop

上文說到了,channelHandler, 顧名思義 handler 處理者

從channelPipeline的定義中看出,channelPipeline是channelHandler的集合

public interface ChannelPipeline extends Iterable<Entry<String, ChannelHandler>>
           

檢視其接口定義和源碼可以看出

接口方法

分為三類  

Handler life cycle methods  

Inbound event handler methods

Outbound event handler methods

netty源碼分析 之五 transport(ChannelHandler)接口方法ChannelHandlerAdapterChannelHandlerContext 接着看AbstractChannelHandlerContext ChannelHandlerInvokerSingleThreadEventLoop
netty源碼分析 之五 transport(ChannelHandler)接口方法ChannelHandlerAdapterChannelHandlerContext 接着看AbstractChannelHandlerContext ChannelHandlerInvokerSingleThreadEventLoop

ChannelHandlerAdapter

大多數的handler都繼承它了

netty源碼分析 之五 transport(ChannelHandler)接口方法ChannelHandlerAdapterChannelHandlerContext 接着看AbstractChannelHandlerContext ChannelHandlerInvokerSingleThreadEventLoop

ChannelHandlerContext

netty源碼分析 之五 transport(ChannelHandler)接口方法ChannelHandlerAdapterChannelHandlerContext 接着看AbstractChannelHandlerContext ChannelHandlerInvokerSingleThreadEventLoop

接着看AbstractChannelHandlerContext

看其類的核心實作是,invoker

netty源碼分析 之五 transport(ChannelHandler)接口方法ChannelHandlerAdapterChannelHandlerContext 接着看AbstractChannelHandlerContext ChannelHandlerInvokerSingleThreadEventLoop

ChannelHandlerInvoker

netty源碼分析 之五 transport(ChannelHandler)接口方法ChannelHandlerAdapterChannelHandlerContext 接着看AbstractChannelHandlerContext ChannelHandlerInvokerSingleThreadEventLoop

SingleThreadEventLoop

這個類裡面已經有   DefaultChannelHandlerInvoker 

netty源碼分析 之五 transport(ChannelHandler)接口方法ChannelHandlerAdapterChannelHandlerContext 接着看AbstractChannelHandlerContext ChannelHandlerInvokerSingleThreadEventLoop