Http2MultiplexCodecBuilder Class — netty Architecture
Architecture documentation for the Http2MultiplexCodecBuilder class in Http2MultiplexCodecBuilder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 11f07d9f_1385_85d0_3819_71b4499f6830["Http2MultiplexCodecBuilder"] 1f57fc3b_bef4_ae1b_e6f0_0b24842cee4a["Http2MultiplexCodecBuilder.java"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|defined in| 1f57fc3b_bef4_ae1b_e6f0_0b24842cee4a d55c9a96_d9d5_cb2f_7422_a4481d9fc304["Http2MultiplexCodecBuilder()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| d55c9a96_d9d5_cb2f_7422_a4481d9fc304 e83c57bb_7033_08c1_c8ab_8fd76e8bcf73["ChannelHandler()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| e83c57bb_7033_08c1_c8ab_8fd76e8bcf73 b7da8b3d_51e2_31ba_91e0_4b3f98b6af1b["Http2Settings()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| b7da8b3d_51e2_31ba_91e0_4b3f98b6af1b 148fc613_cd86_909a_402e_f0193b08cec9["gracefulShutdownTimeoutMillis()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| 148fc613_cd86_909a_402e_f0193b08cec9 e16a7041_d3a6_daf7_8940_85c8aebcfa25["isServer()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| e16a7041_d3a6_daf7_8940_85c8aebcfa25 1a69708d_3e90_d2b0_fde8_15f1556d9c51["maxReservedStreams()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| 1a69708d_3e90_d2b0_fde8_15f1556d9c51 04803313_04ad_72cf_56a8_77c5f1f27f7d["isValidateHeaders()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| 04803313_04ad_72cf_56a8_77c5f1f27f7d bdf17c63_994d_03e8_eab4_85e452e93e8a["Http2FrameLogger()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| bdf17c63_994d_03e8_eab4_85e452e93e8a d4e2e774_b975_836c_ae48_650bc0d482ca["encoderEnforceMaxConcurrentStreams()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| d4e2e774_b975_836c_ae48_650bc0d482ca d8d31962_d4e9_ead4_f0c6_e745d00bf856["encoderEnforceMaxQueuedControlFrames()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| d8d31962_d4e9_ead4_f0c6_e745d00bf856 6f9a274f_c9f0_123e_5666_a4b1a4640b25["headerSensitivityDetector()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| 6f9a274f_c9f0_123e_5666_a4b1a4640b25 2c544152_f1e8_4e7f_3cc0_384afe6a7bae["decoderEnforceMaxConsecutiveEmptyDataFrames()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| 2c544152_f1e8_4e7f_3cc0_384afe6a7bae 763724bf_3069_043c_1813_3012159c48e5["Http2MultiplexCodec()"] 11f07d9f_1385_85d0_3819_71b4499f6830 -->|method| 763724bf_3069_043c_1813_3012159c48e5
Relationship Graph
Source Code
codec-http2/src/main/java/io/netty/handler/codec/http2/Http2MultiplexCodecBuilder.java lines 28–264
@Deprecated
public class Http2MultiplexCodecBuilder
extends AbstractHttp2ConnectionHandlerBuilder<Http2MultiplexCodec, Http2MultiplexCodecBuilder> {
private Http2FrameWriter frameWriter;
final ChannelHandler childHandler;
private ChannelHandler upgradeStreamHandler;
Http2MultiplexCodecBuilder(boolean server, ChannelHandler childHandler) {
server(server);
this.childHandler = checkSharable(checkNotNull(childHandler, "childHandler"));
// For backwards compatibility we should disable to timeout by default at this layer.
gracefulShutdownTimeoutMillis(0);
}
private static ChannelHandler checkSharable(ChannelHandler handler) {
if (handler instanceof ChannelHandlerAdapter && !((ChannelHandlerAdapter) handler).isSharable() &&
!handler.getClass().isAnnotationPresent(ChannelHandler.Sharable.class)) {
throw new IllegalArgumentException("The handler must be Sharable");
}
return handler;
}
// For testing only.
Http2MultiplexCodecBuilder frameWriter(Http2FrameWriter frameWriter) {
this.frameWriter = checkNotNull(frameWriter, "frameWriter");
return this;
}
/**
* Creates a builder for an HTTP/2 client.
*
* @param childHandler the handler added to channels for remotely-created streams. It must be
* {@link ChannelHandler.Sharable}.
*/
public static Http2MultiplexCodecBuilder forClient(ChannelHandler childHandler) {
return new Http2MultiplexCodecBuilder(false, childHandler);
}
/**
* Creates a builder for an HTTP/2 server.
*
* @param childHandler the handler added to channels for remotely-created streams. It must be
* {@link ChannelHandler.Sharable}.
*/
public static Http2MultiplexCodecBuilder forServer(ChannelHandler childHandler) {
return new Http2MultiplexCodecBuilder(true, childHandler);
}
public Http2MultiplexCodecBuilder withUpgradeStreamHandler(ChannelHandler upgradeStreamHandler) {
if (isServer()) {
throw new IllegalArgumentException("Server codecs don't use an extra handler for the upgrade stream");
}
this.upgradeStreamHandler = upgradeStreamHandler;
return this;
}
@Override
public Http2Settings initialSettings() {
return super.initialSettings();
}
@Override
public Http2MultiplexCodecBuilder initialSettings(Http2Settings settings) {
return super.initialSettings(settings);
}
@Override
public long gracefulShutdownTimeoutMillis() {
return super.gracefulShutdownTimeoutMillis();
}
@Override
public Http2MultiplexCodecBuilder gracefulShutdownTimeoutMillis(long gracefulShutdownTimeoutMillis) {
return super.gracefulShutdownTimeoutMillis(gracefulShutdownTimeoutMillis);
}
@Override
public boolean isServer() {
return super.isServer();
}
Source
Frequently Asked Questions
What is the Http2MultiplexCodecBuilder class?
Http2MultiplexCodecBuilder is a class in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2MultiplexCodecBuilder.java.
Where is Http2MultiplexCodecBuilder defined?
Http2MultiplexCodecBuilder is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2MultiplexCodecBuilder.java at line 28.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free