Home / Class/ BufferingClientHandler Class — netty Architecture

BufferingClientHandler Class — netty Architecture

Architecture documentation for the BufferingClientHandler class in SocketConnectTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  c003ff1d_d8db_49f7_4ce5_9520b745d318["BufferingClientHandler"]
  f5662e12_3954_d0e1_076b_b00f29a7cc66["SocketConnectTest.java"]
  c003ff1d_d8db_49f7_4ce5_9520b745d318 -->|defined in| f5662e12_3954_d0e1_076b_b00f29a7cc66
  39163b4d_6655_a05c_9205_fe0c42419b89["channelRead()"]
  c003ff1d_d8db_49f7_4ce5_9520b745d318 -->|method| 39163b4d_6655_a05c_9205_fe0c42419b89
  a9689029_732f_638c_01a1_fc8b35db17fa["String()"]
  c003ff1d_d8db_49f7_4ce5_9520b745d318 -->|method| a9689029_732f_638c_01a1_fc8b35db17fa

Relationship Graph

Source Code

testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketConnectTest.java lines 242–265

    private static class BufferingClientHandler extends ChannelInboundHandlerAdapter {
        private final Semaphore semaphore = new Semaphore(0);
        private final ByteArrayOutputStream streamBuffer = new ByteArrayOutputStream();

        @Override
        public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
            if (msg instanceof ByteBuf) {
                ByteBuf buf = (ByteBuf) msg;
                int readableBytes = buf.readableBytes();
                buf.readBytes(streamBuffer, readableBytes);
                semaphore.release(readableBytes);
                buf.release();
            } else {
                throw new IllegalArgumentException("Unexpected message type: " + msg);
            }
        }

        String collectBuffer(int expectedBytes) throws InterruptedException {
            semaphore.acquire(expectedBytes);
            byte[] bytes = streamBuffer.toByteArray();
            streamBuffer.reset();
            return new String(bytes, US_ASCII);
        }
    }

Frequently Asked Questions

What is the BufferingClientHandler class?
BufferingClientHandler is a class in the netty codebase, defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketConnectTest.java.
Where is BufferingClientHandler defined?
BufferingClientHandler is defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketConnectTest.java at line 242.

Analyze Your Own Codebase

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

Try Supermodel Free