Home / Class/ HeadContext Class — netty Architecture

HeadContext Class — netty Architecture

Architecture documentation for the HeadContext class in DefaultChannelPipeline.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff["HeadContext"]
  c48eeee1_03a5_bd10_43c4_393bf83109a4["DefaultChannelPipeline.java"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|defined in| c48eeee1_03a5_bd10_43c4_393bf83109a4
  2a426688_d2e7_d075_317c_8081064ce96c["HeadContext()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 2a426688_d2e7_d075_317c_8081064ce96c
  707c93bb_e478_51d7_a51d_769082c6ea36["ChannelHandler()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 707c93bb_e478_51d7_a51d_769082c6ea36
  51296ff9_abc0_33d2_5883_de61f348cf3a["handlerAdded()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 51296ff9_abc0_33d2_5883_de61f348cf3a
  75485dc6_3299_5ac9_9e2b_40f236051150["handlerRemoved()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 75485dc6_3299_5ac9_9e2b_40f236051150
  1282aa47_e498_a694_f9fa_0915f866e788["bind()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 1282aa47_e498_a694_f9fa_0915f866e788
  89257c92_1d68_404b_0cf4_26f15f59fe09["connect()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 89257c92_1d68_404b_0cf4_26f15f59fe09
  42ba6e4e_edbc_12ab_70c8_626b72bc6d08["disconnect()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 42ba6e4e_edbc_12ab_70c8_626b72bc6d08
  1954817b_980b_ce5d_dc28_b461f1fc23f9["close()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 1954817b_980b_ce5d_dc28_b461f1fc23f9
  8d027a91_6d4b_ebc3_0af9_93adb23d3a16["deregister()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 8d027a91_6d4b_ebc3_0af9_93adb23d3a16
  841da92a_741e_282f_f2dd_c7c71089a3f5["read()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 841da92a_741e_282f_f2dd_c7c71089a3f5
  d4b1c745_aafd_01fe_ece9_5d5d9e5e0862["write()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| d4b1c745_aafd_01fe_ece9_5d5d9e5e0862
  c516d33e_6b36_7d05_8474_c1500cafe942["flush()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| c516d33e_6b36_7d05_8474_c1500cafe942
  7257e27e_d8b5_0aa8_0500_9688019cc5e8["exceptionCaught()"]
  d8d21a32_dd52_7b7d_f2bf_2f633af590ff -->|method| 7257e27e_d8b5_0aa8_0500_9688019cc5e8

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java lines 1324–1454

    final class HeadContext extends AbstractChannelHandlerContext
            implements ChannelOutboundHandler, ChannelInboundHandler {

        private final Unsafe unsafe;

        HeadContext(DefaultChannelPipeline pipeline) {
            super(pipeline, null, HEAD_NAME, HeadContext.class);
            unsafe = pipeline.channel().unsafe();
            setAddComplete();
        }

        @Override
        public ChannelHandler handler() {
            return this;
        }

        @Override
        public void handlerAdded(ChannelHandlerContext ctx) {
            // NOOP
        }

        @Override
        public void handlerRemoved(ChannelHandlerContext ctx) {
            // NOOP
        }

        @Override
        public void bind(
                ChannelHandlerContext ctx, SocketAddress localAddress, ChannelPromise promise) {
            unsafe.bind(localAddress, promise);
        }

        @Override
        public void connect(
                ChannelHandlerContext ctx,
                SocketAddress remoteAddress, SocketAddress localAddress,
                ChannelPromise promise) {
            unsafe.connect(remoteAddress, localAddress, promise);
        }

        @Override
        public void disconnect(ChannelHandlerContext ctx, ChannelPromise promise) {
            unsafe.disconnect(promise);
        }

        @Override
        public void close(ChannelHandlerContext ctx, ChannelPromise promise) {
            unsafe.close(promise);
        }

        @Override
        public void deregister(ChannelHandlerContext ctx, ChannelPromise promise) {
            unsafe.deregister(promise);
        }

        @Override
        public void read(ChannelHandlerContext ctx) {
            unsafe.beginRead();
        }

        @Override
        public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) {
            unsafe.write(msg, promise);
        }

        @Override
        public void flush(ChannelHandlerContext ctx) {
            unsafe.flush();
        }

        @Override
        public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
            ctx.fireExceptionCaught(cause);
        }

        @Override
        public void channelRegistered(ChannelHandlerContext ctx) {
            invokeHandlerAddedIfNeeded();
            ctx.fireChannelRegistered();
        }

Frequently Asked Questions

What is the HeadContext class?
HeadContext is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java.
Where is HeadContext defined?
HeadContext is defined in transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java at line 1324.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free