Http3UnidirectionalStreamInboundClientHandler Class — netty Architecture
Architecture documentation for the Http3UnidirectionalStreamInboundClientHandler class in Http3UnidirectionalStreamInboundClientHandler.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 813bb225_c44b_64db_35ef_faef806aa375["Http3UnidirectionalStreamInboundClientHandler"] 4ce7215a_6c8c_612e_2fbb_2ee92a7a8753["Http3UnidirectionalStreamInboundClientHandler.java"] 813bb225_c44b_64db_35ef_faef806aa375 -->|defined in| 4ce7215a_6c8c_612e_2fbb_2ee92a7a8753 2f37aec5_93a0_72b9_0211_b31bc7c700ec["Http3UnidirectionalStreamInboundClientHandler()"] 813bb225_c44b_64db_35ef_faef806aa375 -->|method| 2f37aec5_93a0_72b9_0211_b31bc7c700ec 8ce0ed3d_651f_0799_f995_4c792cda21c9["initPushStream()"] 813bb225_c44b_64db_35ef_faef806aa375 -->|method| 8ce0ed3d_651f_0799_f995_4c792cda21c9
Relationship Graph
Source Code
codec-http3/src/main/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundClientHandler.java lines 27–62
final class Http3UnidirectionalStreamInboundClientHandler extends Http3UnidirectionalStreamInboundHandler {
private final LongFunction<ChannelHandler> pushStreamHandlerFactory;
Http3UnidirectionalStreamInboundClientHandler(
Http3FrameCodecFactory codecFactory,
Http3Settings.NonStandardHttp3SettingsValidator nonStandardSettingsValidator,
Http3ControlStreamInboundHandler localControlStreamHandler,
Http3ControlStreamOutboundHandler remoteControlStreamHandler,
@Nullable LongFunction<ChannelHandler> unknownStreamHandlerFactory,
@Nullable LongFunction<ChannelHandler> pushStreamHandlerFactory,
Supplier<ChannelHandler> qpackEncoderHandlerFactory, Supplier<ChannelHandler> qpackDecoderHandlerFactory) {
super(codecFactory, nonStandardSettingsValidator,
localControlStreamHandler, remoteControlStreamHandler, unknownStreamHandlerFactory,
qpackEncoderHandlerFactory, qpackDecoderHandlerFactory);
this.pushStreamHandlerFactory = pushStreamHandlerFactory == null ? __ -> ReleaseHandler.INSTANCE :
pushStreamHandlerFactory;
}
@Override
void initPushStream(ChannelHandlerContext ctx, long pushId) {
// See https://tools.ietf.org/html/draft-ietf-quic-http-32#section-4.4
Long maxPushId = remoteControlStreamHandler.sentMaxPushId();
if (maxPushId == null) {
Http3CodecUtils.connectionError(ctx, Http3ErrorCode.H3_ID_ERROR,
"Received push stream before sending MAX_PUSH_ID frame.", false);
} else if (maxPushId < pushId) {
Http3CodecUtils.connectionError(ctx, Http3ErrorCode.H3_ID_ERROR,
"Received push stream with ID " + pushId + " greater than the max push ID " + maxPushId
+ '.', false);
} else {
// Replace this handler with the actual push stream handlers.
final ChannelHandler pushStreamHandler = pushStreamHandlerFactory.apply(pushId);
ctx.pipeline().replace(this, null, pushStreamHandler);
}
}
}
Source
Frequently Asked Questions
What is the Http3UnidirectionalStreamInboundClientHandler class?
Http3UnidirectionalStreamInboundClientHandler is a class in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundClientHandler.java.
Where is Http3UnidirectionalStreamInboundClientHandler defined?
Http3UnidirectionalStreamInboundClientHandler is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundClientHandler.java at line 27.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free