Http3RequestStreamInboundHandler Class — netty Architecture
Architecture documentation for the Http3RequestStreamInboundHandler class in Http3RequestStreamInboundHandler.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 8f22a8be_cef4_bc4e_a01f_25a64288a1f5["Http3RequestStreamInboundHandler"] 8eec1f92_fcec_7fa3_63c2_625544813350["Http3RequestStreamInboundHandler.java"] 8f22a8be_cef4_bc4e_a01f_25a64288a1f5 -->|defined in| 8eec1f92_fcec_7fa3_63c2_625544813350 9b23be85_101e_94f6_4a97_a97612af1187["channelRead()"] 8f22a8be_cef4_bc4e_a01f_25a64288a1f5 -->|method| 9b23be85_101e_94f6_4a97_a97612af1187 553f75f2_92cd_0274_1973_c336944d0f16["userEventTriggered()"] 8f22a8be_cef4_bc4e_a01f_25a64288a1f5 -->|method| 553f75f2_92cd_0274_1973_c336944d0f16 1083000f_291b_de8e_4e02_c9af8ecd7616["exceptionCaught()"] 8f22a8be_cef4_bc4e_a01f_25a64288a1f5 -->|method| 1083000f_291b_de8e_4e02_c9af8ecd7616 1d3e765a_5d7a_0e26_be30_2dd082a797ac["channelInputClosed()"] 8f22a8be_cef4_bc4e_a01f_25a64288a1f5 -->|method| 1d3e765a_5d7a_0e26_be30_2dd082a797ac 9323b1ba_fbe9_51e2_bb3a_55592e9be678["handleQuicException()"] 8f22a8be_cef4_bc4e_a01f_25a64288a1f5 -->|method| 9323b1ba_fbe9_51e2_bb3a_55592e9be678 dbca3a59_62c0_bc41_fc9a_3e4e33f92362["handleHttp3Exception()"] 8f22a8be_cef4_bc4e_a01f_25a64288a1f5 -->|method| dbca3a59_62c0_bc41_fc9a_3e4e33f92362 36d2df58_6a16_73e7_e058_2fe26c6105d6["QuicStreamChannel()"] 8f22a8be_cef4_bc4e_a01f_25a64288a1f5 -->|method| 36d2df58_6a16_73e7_e058_2fe26c6105d6
Relationship Graph
Source Code
codec-http3/src/main/java/io/netty/handler/codec/http3/Http3RequestStreamInboundHandler.java lines 31–137
public abstract class Http3RequestStreamInboundHandler extends ChannelInboundHandlerAdapter {
private static final InternalLogger logger =
InternalLoggerFactory.getInstance(Http3RequestStreamInboundHandler.class);
@Override
public final void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
if (msg instanceof Http3UnknownFrame) {
channelRead(ctx, (Http3UnknownFrame) msg);
} else if (msg instanceof Http3HeadersFrame) {
channelRead(ctx, (Http3HeadersFrame) msg);
} else if (msg instanceof Http3DataFrame) {
channelRead(ctx, (Http3DataFrame) msg);
} else {
super.channelRead(ctx, msg);
}
}
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (evt == ChannelInputShutdownEvent.INSTANCE) {
channelInputClosed(ctx);
}
ctx.fireUserEventTriggered(evt);
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
if (cause instanceof QuicException) {
handleQuicException(ctx, (QuicException) cause);
} else if (cause instanceof Http3Exception) {
handleHttp3Exception(ctx, (Http3Exception) cause);
} else {
ctx.fireExceptionCaught(cause);
}
}
/**
* Called once a {@link Http3HeadersFrame} is ready for this stream to process.
*
* @param ctx the {@link ChannelHandlerContext} of this handler.
* @param frame the {@link Http3HeadersFrame} that was read
* @throws Exception thrown if an error happens during processing.
*/
protected abstract void channelRead(ChannelHandlerContext ctx, Http3HeadersFrame frame) throws Exception;
/**
* Called once a {@link Http3DataFrame} is ready for this stream to process.
*
* @param ctx the {@link ChannelHandlerContext} of this handler.
* @param frame the {@link Http3DataFrame} that was read
* @throws Exception thrown if an error happens during processing.
*/
protected abstract void channelRead(ChannelHandlerContext ctx, Http3DataFrame frame) throws Exception;
/**
* Called once the input is closed and so no more inbound data is received on it.
*
* @param ctx the {@link ChannelHandlerContext} of this handler.
* @throws Exception thrown if an error happens during processing.
*/
protected abstract void channelInputClosed(ChannelHandlerContext ctx) throws Exception;
/**
* Called once a {@link Http3UnknownFrame} is ready for this stream to process. By default these frames are just
* released and so dropped on the floor as stated in the RFC. That said you may want to override this method if
* you use some custom frames which are not part of the main spec.
*
* @param ctx the {@link ChannelHandlerContext} of this handler.
* @param frame the {@link Http3UnknownFrame} that was read
*/
protected void channelRead(@SuppressWarnings("unused") ChannelHandlerContext ctx, Http3UnknownFrame frame) {
frame.release();
}
/**
* Called once a {@link QuicException} should be handled.
*
* @param ctx the {@link ChannelHandlerContext} of this handler.
* @param exception the {@link QuicException} that caused the error.
*/
protected void handleQuicException(@SuppressWarnings("unused") ChannelHandlerContext ctx, QuicException exception) {
Defined In
Source
Frequently Asked Questions
What is the Http3RequestStreamInboundHandler class?
Http3RequestStreamInboundHandler is a class in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3RequestStreamInboundHandler.java.
Where is Http3RequestStreamInboundHandler defined?
Http3RequestStreamInboundHandler is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3RequestStreamInboundHandler.java at line 31.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free