StreamHandler Class — netty Architecture
Architecture documentation for the StreamHandler class in QuicStreamHalfClosureTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 99c11204_2e4d_9976_0b17_a9fe4d4f4590["StreamHandler"] ca5f6d82_99cb_9d45_006a_7771dc542641["QuicStreamHalfClosureTest.java"] 99c11204_2e4d_9976_0b17_a9fe4d4f4590 -->|defined in| ca5f6d82_99cb_9d45_006a_7771dc542641 3fc3fa70_8536_354a_1f2d_888fffe8e6a8["channelRegistered()"] 99c11204_2e4d_9976_0b17_a9fe4d4f4590 -->|method| 3fc3fa70_8536_354a_1f2d_888fffe8e6a8 9809c426_a53d_65f8_fe2b_a5d0a61927bd["channelInactive()"] 99c11204_2e4d_9976_0b17_a9fe4d4f4590 -->|method| 9809c426_a53d_65f8_fe2b_a5d0a61927bd 343c08cf_dd00_1cf4_3588_ef743604d9f2["channelRead()"] 99c11204_2e4d_9976_0b17_a9fe4d4f4590 -->|method| 343c08cf_dd00_1cf4_3588_ef743604d9f2 8c8f1c88_dc70_142c_2060_8aeafc773f8d["userEventTriggered()"] 99c11204_2e4d_9976_0b17_a9fe4d4f4590 -->|method| 8c8f1c88_dc70_142c_2060_8aeafc773f8d 997eb9b9_d03e_ee8a_7a53_c90f09629428["addIsShutdown()"] 99c11204_2e4d_9976_0b17_a9fe4d4f4590 -->|method| 997eb9b9_d03e_ee8a_7a53_c90f09629428 582266d2_3cd2_7050_496d_3cfecdd426a2["assertSequence()"] 99c11204_2e4d_9976_0b17_a9fe4d4f4590 -->|method| 582266d2_3cd2_7050_496d_3cfecdd426a2
Relationship Graph
Source Code
codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamHalfClosureTest.java lines 101–155
private static final class StreamHandler extends ChannelInboundHandlerAdapter {
private final BlockingQueue<Integer> queue = new LinkedBlockingQueue<>();
@Override
public void channelRegistered(ChannelHandlerContext ctx) {
queue.add(0);
}
@Override
public void channelInactive(ChannelHandlerContext ctx) {
queue.add(5);
// Close the QUIC channel as well.
ctx.channel().parent().close();
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
ReferenceCountUtil.release(msg);
if (((QuicStreamChannel) ctx.channel()).isInputShutdown()) {
queue.add(1);
}
}
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
if (evt == ChannelInputShutdownEvent.INSTANCE) {
addIsShutdown(ctx);
queue.add(3);
} else if (evt == ChannelInputShutdownReadComplete.INSTANCE) {
queue.add(4);
ctx.close();
}
}
private void addIsShutdown(ChannelHandlerContext ctx) {
if (((QuicStreamChannel) ctx.channel()).isInputShutdown()) {
queue.add(2);
}
}
void assertSequence() throws Exception {
assertEquals(0, (int) queue.take());
int value = queue.take();
if (value == 1) {
// If we did see the value of 1 it should be followed by 2 directly.
assertEquals(2, (int) queue.take());
} else {
assertEquals(2, value);
}
assertEquals(3, (int) queue.take());
assertEquals(4, (int) queue.take());
assertEquals(5, (int) queue.take());
assertTrue(queue.isEmpty());
}
}
Defined In
Source
Frequently Asked Questions
What is the StreamHandler class?
StreamHandler is a class in the netty codebase, defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamHalfClosureTest.java.
Where is StreamHandler defined?
StreamHandler is defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamHalfClosureTest.java at line 101.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free