Home / Class/ OutboundEventHandler Class — netty Architecture

OutboundEventHandler Class — netty Architecture

Architecture documentation for the OutboundEventHandler class in CombinedChannelDuplexHandlerTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9["OutboundEventHandler"]
  07c2c57a_3d14_6ab0_bb11_fc10900c4006["CombinedChannelDuplexHandlerTest.java"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|defined in| 07c2c57a_3d14_6ab0_bb11_fc10900c4006
  e36560c6_0caf_8969_0af6_c9601fba3167["handlerAdded()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| e36560c6_0caf_8969_0af6_c9601fba3167
  f87e476a_b54f_1361_62f7_9fc403e856d2["handlerRemoved()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| f87e476a_b54f_1361_62f7_9fc403e856d2
  96d4af81_a2b4_26db_45c9_e717d753bc7b["bind()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| 96d4af81_a2b4_26db_45c9_e717d753bc7b
  9524403e_b4a7_5578_74ea_1eb43c3b6262["connect()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| 9524403e_b4a7_5578_74ea_1eb43c3b6262
  081dc255_e8c9_ac4c_b66e_ddd00f07e206["disconnect()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| 081dc255_e8c9_ac4c_b66e_ddd00f07e206
  685f57ed_729e_a9f6_b762_81412763289e["close()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| 685f57ed_729e_a9f6_b762_81412763289e
  fec32aa8_4bab_4285_138e_426f49e332fd["deregister()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| fec32aa8_4bab_4285_138e_426f49e332fd
  73bbdbe6_7765_a5be_7711_de2299688379["read()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| 73bbdbe6_7765_a5be_7711_de2299688379
  348467f5_ee94_ea82_e7b6_4e44a0f622ed["write()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| 348467f5_ee94_ea82_e7b6_4e44a0f622ed
  57b29a34_9270_bfbb_b521_0a55cd6de021["flush()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| 57b29a34_9270_bfbb_b521_0a55cd6de021
  0b5c5c9f_4075_25b1_c418_6ce24ca1ef31["Event()"]
  22b98a35_48d2_27a4_b6c2_3b5211afeaa9 -->|method| 0b5c5c9f_4075_25b1_c418_6ce24ca1ef31

Relationship Graph

Source Code

transport/src/test/java/io/netty/channel/CombinedChannelDuplexHandlerTest.java lines 397–480

    private static final class OutboundEventHandler extends ChannelOutboundHandlerAdapter {
        private final Queue<Object> queue = new ArrayDeque<Object>();

        @Override
        public void handlerAdded(ChannelHandlerContext ctx) {
            queue.add(Event.HANDLER_ADDED);
        }

        @Override
        public void handlerRemoved(ChannelHandlerContext ctx) {
            queue.add(Event.HANDLER_REMOVED);
        }

        @Override
        public void bind(ChannelHandlerContext ctx, SocketAddress localAddress, ChannelPromise promise) {
            try {
                assertSame(LOCAL_ADDRESS, localAddress);
                queue.add(Event.BIND);
                promise.setSuccess();
            } catch (AssertionError e) {
                promise.setFailure(e);
            }
        }

        @Override
        public void connect(ChannelHandlerContext ctx, SocketAddress remoteAddress,
                            SocketAddress localAddress, ChannelPromise promise) {
            try {
                assertSame(REMOTE_ADDRESS, remoteAddress);
                assertSame(LOCAL_ADDRESS, localAddress);
                queue.add(Event.CONNECT);
                promise.setSuccess();
            } catch (AssertionError e) {
                promise.setFailure(e);
            }
        }

        @Override
        public void disconnect(ChannelHandlerContext ctx, ChannelPromise promise) {
            queue.add(Event.DISCONNECT);
            promise.setSuccess();
        }

        @Override
        public void close(ChannelHandlerContext ctx, ChannelPromise promise) {
            queue.add(Event.CLOSE);
            promise.setSuccess();
        }

        @Override
        public void deregister(ChannelHandlerContext ctx, ChannelPromise promise) {
            queue.add(Event.DEREGISTER);
            promise.setSuccess();
        }

        @Override
        public void read(ChannelHandlerContext ctx) {
            queue.add(Event.READ);
        }

        @Override
        public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) {
            try {
                assertSame(MSG, msg);
                queue.add(Event.WRITE);
                promise.setSuccess();
            } catch (AssertionError e) {
                promise.setFailure(e);
            }
        }

        @Override
        public void flush(ChannelHandlerContext ctx) {
            queue.add(Event.FLUSH);
        }

        Event pollEvent() {
            Object o = queue.poll();
            if (o instanceof AssertionError) {
                throw (AssertionError) o;
            }

Frequently Asked Questions

What is the OutboundEventHandler class?
OutboundEventHandler is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/CombinedChannelDuplexHandlerTest.java.
Where is OutboundEventHandler defined?
OutboundEventHandler is defined in transport/src/test/java/io/netty/channel/CombinedChannelDuplexHandlerTest.java at line 397.

Analyze Your Own Codebase

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

Try Supermodel Free