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);
}
}
Source
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