Http3FrameCodecTest Class — netty Architecture
Architecture documentation for the Http3FrameCodecTest class in Http3FrameCodecTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 5690f307_9248_ec29_2c84_6839dbcdc179["Http3FrameCodecTest"] 757b3540_96b0_cf85_cd15_09f316c558d8["Http3FrameCodecTest.java"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|defined in| 757b3540_96b0_cf85_cd15_09f316c558d8 aa87990d_b9f4_06f6_a966_44086d83d72f["data()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| aa87990d_b9f4_06f6_a966_44086d83d72f c41e6630_6279_e3be_09d7_edd57543ee0b["dataNoFragment()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| c41e6630_6279_e3be_09d7_edd57543ee0b f172e438_95aa_794a_73ee_b2131dfe9d18["setUp()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| f172e438_95aa_794a_73ee_b2131dfe9d18 a9a3ec95_664a_9197_46a1_611a3016bc21["setQpackStreams()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| a9a3ec95_664a_9197_46a1_611a3016bc21 4d24fc8f_afbc_fcec_c330_234add11236e["setQpackEncoderStream()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| 4d24fc8f_afbc_fcec_c330_234add11236e fa954a0a_0c15_73c7_2ae7_a2aaf8d36010["setQpackDecoderStream()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| fa954a0a_0c15_73c7_2ae7_a2aaf8d36010 66ddc43c_544b_822c_7d41_c8e263d00092["tearDown()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| 66ddc43c_544b_822c_7d41_c8e263d00092 9adc46ad_fff8_23d3_d4a6_572d810a74e0["testHttp3CancelPushFrame_63()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| 9adc46ad_fff8_23d3_d4a6_572d810a74e0 64fed699_44f9_642e_abd7_f5203d81ef3c["testHttp3CancelPushFrame_16383()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| 64fed699_44f9_642e_abd7_f5203d81ef3c 5e5e56d5_6f40_8539_5b9e_c5c1f1581718["testHttp3CancelPushFrame_1073741823()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| 5e5e56d5_6f40_8539_5b9e_c5c1f1581718 50df1a1a_30f3_de60_11cc_f002075ab688["testHttp3CancelPushFrame_4611686018427387903()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| 50df1a1a_30f3_de60_11cc_f002075ab688 49b3a2c3_389b_18e8_70b9_94c4955edcd4["testHttp3DataFrame()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| 49b3a2c3_389b_18e8_70b9_94c4955edcd4 b3abc623_cf1c_26ad_f744_1ed740cf27e9["testHttp3GoAwayFrame_63()"] 5690f307_9248_ec29_2c84_6839dbcdc179 -->|method| b3abc623_cf1c_26ad_f744_1ed740cf27e9
Relationship Graph
Source Code
codec-http3/src/test/java/io/netty/handler/codec/http3/Http3FrameCodecTest.java lines 60–841
public class Http3FrameCodecTest {
private static final int MAX_HEADER_SIZE = 1024;
private QpackEncoder encoder;
private QpackDecoder decoder;
private EmbeddedQuicStreamChannel encoderStream;
private EmbeddedQuicStreamChannel decoderStream;
private EmbeddedQuicChannel parent;
private QpackEncoderHandler qpackEncoderHandler;
private QpackDecoderHandler qpackDecoderHandler;
private QpackAttributes qpackAttributes;
private long maxTableCapacity;
public static Collection<Object[]> data() {
return asList(
new Object[]{true, 0, false},
new Object[]{true, 0, true},
new Object[]{true, 100, false},
new Object[]{true, 100, true},
new Object[]{false, 0, false},
new Object[]{false, 0, true},
new Object[]{false, 100, false},
new Object[]{false, 100, true}
);
}
public static Collection<Object[]> dataNoFragment() {
return asList(
new Object[]{0, false},
new Object[]{0, true},
new Object[]{100, false},
new Object[]{100, true}
);
}
private EmbeddedQuicStreamChannel codecChannel;
private void setUp(int maxBlockedStreams, boolean delayQpackStreams) throws Exception {
parent = new EmbeddedQuicChannel(true);
qpackAttributes = new QpackAttributes(parent, false);
Http3.setQpackAttributes(parent, qpackAttributes);
final Http3SettingsFrame settings = new DefaultHttp3SettingsFrame();
maxTableCapacity = 1024L;
settings.put(Http3SettingsFrame.HTTP3_SETTINGS_QPACK_MAX_TABLE_CAPACITY, maxTableCapacity);
settings.put(Http3SettingsFrame.HTTP3_SETTINGS_QPACK_BLOCKED_STREAMS, (long) maxBlockedStreams);
decoder = new QpackDecoder(maxTableCapacity, maxBlockedStreams);
decoder.setDynamicTableCapacity(maxTableCapacity);
qpackEncoderHandler = new QpackEncoderHandler(maxTableCapacity, decoder);
encoderStream = (EmbeddedQuicStreamChannel) parent.createStream(QuicStreamType.UNIDIRECTIONAL,
new ChannelOutboundHandlerAdapter()).get();
encoder = new QpackEncoder();
qpackDecoderHandler = new QpackDecoderHandler(encoder);
decoderStream = (EmbeddedQuicStreamChannel) parent.createStream(QuicStreamType.UNIDIRECTIONAL,
new ChannelOutboundHandlerAdapter()).get();
qpackAttributes.whenEncoderStreamAvailable(future -> {
if (future.isSuccess()) {
encoder.configureDynamicTable(qpackAttributes, maxTableCapacity, maxBlockedStreams);
}
});
if (!delayQpackStreams) {
setQpackStreams();
}
codecChannel = (EmbeddedQuicStreamChannel) parent.createStream(QuicStreamType.BIDIRECTIONAL,
new ChannelInitializer<QuicStreamChannel>() {
@Override
protected void initChannel(QuicStreamChannel ch) {
Http3RequestStreamEncodeStateValidator encStateValidator =
new Http3RequestStreamEncodeStateValidator();
Http3RequestStreamDecodeStateValidator decStateValidator =
new Http3RequestStreamDecodeStateValidator();
ch.pipeline().addLast(new Http3FrameCodec(Http3FrameTypeValidator.NO_VALIDATION, decoder,
MAX_HEADER_SIZE, encoder, encStateValidator, decStateValidator, (id, v) -> false));
ch.pipeline().addLast(encStateValidator);
ch.pipeline().addLast(decStateValidator);
}
}).get();
}
private void setQpackStreams() {
setQpackEncoderStream();
setQpackDecoderStream();
}
Source
Frequently Asked Questions
What is the Http3FrameCodecTest class?
Http3FrameCodecTest is a class in the netty codebase, defined in codec-http3/src/test/java/io/netty/handler/codec/http3/Http3FrameCodecTest.java.
Where is Http3FrameCodecTest defined?
Http3FrameCodecTest is defined in codec-http3/src/test/java/io/netty/handler/codec/http3/Http3FrameCodecTest.java at line 60.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free