duplicate() — netty Function Reference
Architecture documentation for the duplicate() function in QpackEncoderDecoderTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 33bd7c0f_f1af_f340_0762_d70deb77d283["duplicate()"] a2f105b8_5272_f106_c6ff_e4604fde3ee0["QpackEncoderDecoderTest"] 33bd7c0f_f1af_f340_0762_d70deb77d283 -->|defined in| a2f105b8_5272_f106_c6ff_e4604fde3ee0 8b7d68af_ce51_4e48_b8d7_ce72fd007482["setup()"] 33bd7c0f_f1af_f340_0762_d70deb77d283 -->|calls| 8b7d68af_ce51_4e48_b8d7_ce72fd007482 774159a1_175e_8719_c4d3_d0b597c565f0["addEncodeHeader()"] 33bd7c0f_f1af_f340_0762_d70deb77d283 -->|calls| 774159a1_175e_8719_c4d3_d0b597c565f0 dbadf5dd_759e_9666_c044_b830bfb006e7["encode()"] 33bd7c0f_f1af_f340_0762_d70deb77d283 -->|calls| dbadf5dd_759e_9666_c044_b830bfb006e7 d1b98b2f_bbd4_27a4_6d86_baace932a319["verifyRequiredInsertCount()"] 33bd7c0f_f1af_f340_0762_d70deb77d283 -->|calls| d1b98b2f_bbd4_27a4_6d86_baace932a319 df3a5571_94fc_f51f_c432_e0490c53efd5["verifyKnownReceivedCount()"] 33bd7c0f_f1af_f340_0762_d70deb77d283 -->|calls| df3a5571_94fc_f51f_c432_e0490c53efd5 8ffd2344_51e9_0e6a_5a0a_2cca38fa4edd["resetState()"] 33bd7c0f_f1af_f340_0762_d70deb77d283 -->|calls| 8ffd2344_51e9_0e6a_5a0a_2cca38fa4edd 879f268a_79d6_4e84_4dcc_69e8fceb5059["decode()"] 33bd7c0f_f1af_f340_0762_d70deb77d283 -->|calls| 879f268a_79d6_4e84_4dcc_69e8fceb5059 b0e13fad_f554_d84c_38f4_40a57d570d8a["verifyDecodedHeader()"] 33bd7c0f_f1af_f340_0762_d70deb77d283 -->|calls| b0e13fad_f554_d84c_38f4_40a57d570d8a style 33bd7c0f_f1af_f340_0762_d70deb77d283 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http3/src/test/java/io/netty/handler/codec/http3/QpackEncoderDecoderTest.java lines 241–290
@Test
public void duplicate() throws Exception {
setup(256, 0, 50);
// Do not ack any add so entries are not evicted from the table just marked for eviction hence leveraging
// duplicate path
stateSyncStrategyAckNextInsert = false;
addEncodeHeader("foo", "bar", 5);
QpackHeaderField oldEntry = new QpackHeaderField("foo0", "bar");
assertThat(encHeaders.get(oldEntry.name, oldEntry.value), is(notNullValue()));
ByteBuf spareEncode = Unpooled.buffer();
try {
encode(spareEncode, encHeaders);
} finally {
spareEncode.release();
}
verifyRequiredInsertCount(5);
verifyKnownReceivedCount(0);
final int idx = encDynamicTable.getEntryIndex(oldEntry.name, oldEntry.value);
assertThat(idx, greaterThanOrEqualTo(0));
assertThat(encDynamicTable.requiresDuplication(idx, oldEntry.size()), is(true));
resetState();
stateSyncStrategyAckNextInsert = true;
encHeaders.add(oldEntry.name, oldEntry.value);
encode(out, encHeaders); // duplicate but not add to the header block
verifyRequiredInsertCount(6);
decode(out, decHeaders);
verifyKnownReceivedCount(6);
assertThat(decDynamicTable.insertCount(), is(6));
assertThat(decHeaders.size(), is(1));
verifyDecodedHeader(oldEntry.name, oldEntry.value);
// Now encode again to refer to the duplicated entry
resetState();
encHeaders.add(oldEntry.name, oldEntry.value);
encode(out, encHeaders);
verifyRequiredInsertCount(6);
decode(out, decHeaders);
verifyKnownReceivedCount(6);
assertThat(decDynamicTable.insertCount(), is(6));
assertThat(decHeaders.size(), is(1));
verifyDecodedHeader(oldEntry.name, oldEntry.value);
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does duplicate() do?
duplicate() is a function in the netty codebase, defined in codec-http3/src/test/java/io/netty/handler/codec/http3/QpackEncoderDecoderTest.java.
Where is duplicate() defined?
duplicate() is defined in codec-http3/src/test/java/io/netty/handler/codec/http3/QpackEncoderDecoderTest.java at line 241.
What does duplicate() call?
duplicate() calls 8 function(s): addEncodeHeader, decode, encode, resetState, setup, verifyDecodedHeader, verifyKnownReceivedCount, verifyRequiredInsertCount.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free