channelRead() — netty Function Reference
Architecture documentation for the channelRead() function in Http3ControlStreamInboundHandler.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD e1f1a7ae_5b21_5e0c_4d99_5ac309dfe1d9["channelRead()"] 482a62ae_e5d4_afc5_e7a7_ded7c1b1758a["Http3ControlStreamInboundHandler"] e1f1a7ae_5b21_5e0c_4d99_5ac309dfe1d9 -->|defined in| 482a62ae_e5d4_afc5_e7a7_ded7c1b1758a bdb44f5b_93a9_3f66_dff0_5b4f9abcd0ea["forwardControlFrames()"] e1f1a7ae_5b21_5e0c_4d99_5ac309dfe1d9 -->|calls| bdb44f5b_93a9_3f66_dff0_5b4f9abcd0ea 26a29f3a_f6d2_e6f7_bb54_8d431ede4a6e["handleHttp3SettingsFrame()"] e1f1a7ae_5b21_5e0c_4d99_5ac309dfe1d9 -->|calls| 26a29f3a_f6d2_e6f7_bb54_8d431ede4a6e b709faf7_6fde_28f8_c2b5_909b643ca464["handleHttp3GoAwayFrame()"] e1f1a7ae_5b21_5e0c_4d99_5ac309dfe1d9 -->|calls| b709faf7_6fde_28f8_c2b5_909b643ca464 67c08639_8a9a_85b2_08bb_7f127dc08474["handleHttp3MaxPushIdFrame()"] e1f1a7ae_5b21_5e0c_4d99_5ac309dfe1d9 -->|calls| 67c08639_8a9a_85b2_08bb_7f127dc08474 5245cc82_022f_2aaf_56bb_2cc8275f4a9f["handleHttp3CancelPushFrame()"] e1f1a7ae_5b21_5e0c_4d99_5ac309dfe1d9 -->|calls| 5245cc82_022f_2aaf_56bb_2cc8275f4a9f style e1f1a7ae_5b21_5e0c_4d99_5ac309dfe1d9 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http3/src/main/java/io/netty/handler/codec/http3/Http3ControlStreamInboundHandler.java lines 96–135
@Override
void channelRead(ChannelHandlerContext ctx, Http3ControlStreamFrame frame) throws QpackException {
boolean isSettingsFrame = frame instanceof Http3SettingsFrame;
if (!firstFrameRead && !isSettingsFrame) {
connectionError(ctx, H3_MISSING_SETTINGS, "Missing settings frame.", forwardControlFrames());
ReferenceCountUtil.release(frame);
return;
}
if (firstFrameRead && isSettingsFrame) {
connectionError(ctx, H3_FRAME_UNEXPECTED, "Second settings frame received.", forwardControlFrames());
ReferenceCountUtil.release(frame);
return;
}
firstFrameRead = true;
final boolean valid;
if (isSettingsFrame) {
valid = handleHttp3SettingsFrame(ctx, (Http3SettingsFrame) frame);
} else if (frame instanceof Http3GoAwayFrame) {
valid = handleHttp3GoAwayFrame(ctx, (Http3GoAwayFrame) frame);
} else if (frame instanceof Http3MaxPushIdFrame) {
valid = handleHttp3MaxPushIdFrame(ctx, (Http3MaxPushIdFrame) frame);
} else if (frame instanceof Http3CancelPushFrame) {
valid = handleHttp3CancelPushFrame(ctx, (Http3CancelPushFrame) frame);
} else {
// We don't need to do any special handling for Http3UnknownFrames as we either pass these to the next#
// handler or release these directly.
assert frame instanceof Http3UnknownFrame;
valid = true;
}
if (!valid || controlFrameHandler == null) {
ReferenceCountUtil.release(frame);
return;
}
// The user did specify ChannelHandler that should be notified about control stream frames.
// Let's forward the frame so the user can do something with it.
ctx.fireChannelRead(frame);
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does channelRead() do?
channelRead() is a function in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3ControlStreamInboundHandler.java.
Where is channelRead() defined?
channelRead() is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3ControlStreamInboundHandler.java at line 96.
What does channelRead() call?
channelRead() calls 5 function(s): forwardControlFrames, handleHttp3CancelPushFrame, handleHttp3GoAwayFrame, handleHttp3MaxPushIdFrame, handleHttp3SettingsFrame.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free