Home / Class/ ReadPendingReadHandler Class — netty Architecture

ReadPendingReadHandler Class — netty Architecture

Architecture documentation for the ReadPendingReadHandler class in SocketReadPendingTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  00d52333_e28a_6b86_2f8d_d39fad2221de["ReadPendingReadHandler"]
  0a9d5e8f_8342_91e5_cfc3_dc36989130d7["SocketReadPendingTest.java"]
  00d52333_e28a_6b86_2f8d_d39fad2221de -->|defined in| 0a9d5e8f_8342_91e5_cfc3_dc36989130d7
  7bff7e8a_fa1a_b63f_106f_b4b429434707["channelRead()"]
  00d52333_e28a_6b86_2f8d_d39fad2221de -->|method| 7bff7e8a_fa1a_b63f_106f_b4b429434707
  f1f268f5_c300_be44_6691_5309867aa8b8["channelReadComplete()"]
  00d52333_e28a_6b86_2f8d_d39fad2221de -->|method| f1f268f5_c300_be44_6691_5309867aa8b8
  1a9bb64e_0325_4590_6ff4_400a58483593["assertAllRead()"]
  00d52333_e28a_6b86_2f8d_d39fad2221de -->|method| 1a9bb64e_0325_4590_6ff4_400a58483593

Relationship Graph

Source Code

testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketReadPendingTest.java lines 113–139

    private static final class ReadPendingReadHandler extends ChannelInboundHandlerAdapter {
        private final AtomicInteger count = new AtomicInteger();
        private final CountDownLatch latch = new CountDownLatch(1);
        private final CountDownLatch latch2 = new CountDownLatch(2);

        @Override
        public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
            ReferenceCountUtil.release(msg);
            if (count.incrementAndGet() == 1) {
                // Call read the first time, to ensure it is not reset the second time.
                ctx.read();
            }
        }

        @Override
        public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
            latch.countDown();
            latch2.countDown();
        }

        void assertAllRead() throws InterruptedException {
            assertTrue(latch.await(5, TimeUnit.SECONDS));
            // We should only do 1 read loop, because we only called read() on the first channelRead.
            assertFalse(latch2.await(1, TimeUnit.SECONDS));
            assertEquals(2, count.get());
        }
    }

Frequently Asked Questions

What is the ReadPendingReadHandler class?
ReadPendingReadHandler is a class in the netty codebase, defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketReadPendingTest.java.
Where is ReadPendingReadHandler defined?
ReadPendingReadHandler is defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketReadPendingTest.java at line 113.

Analyze Your Own Codebase

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

Try Supermodel Free