processReceived() — netty Function Reference
Architecture documentation for the processReceived() function in QuicheQuicChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 4cae79d3_92ee_29bb_03d0_6a120cc97031["processReceived()"] 981bac79_4fa5_9e57_50c8_e12d0b35f6d4["QuicChannelUnsafe"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|defined in| 981bac79_4fa5_9e57_50c8_e12d0b35f6d4 c4a3c3a8_c9a0_f1c5_a6e4_d976b89450ea["connectionRecv()"] c4a3c3a8_c9a0_f1c5_a6e4_d976b89450ea -->|calls| 4cae79d3_92ee_29bb_03d0_6a120cc97031 f272787f_620b_08bb_a796_d28ea6137125["Runnable()"] f272787f_620b_08bb_a796_d28ea6137125 -->|calls| 4cae79d3_92ee_29bb_03d0_6a120cc97031 a4b4fcaa_9db9_acca_39f7_249f845a6b78["handlePendingChannelActive()"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| a4b4fcaa_9db9_acca_39f7_249f845a6b78 964a3852_b3e7_b070_9305_753cc91a1758["notifyAboutHandshakeCompletionIfNeeded()"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| 964a3852_b3e7_b070_9305_753cc91a1758 ef304e25_a25b_693c_82b3_0eb2c9334eb7["fireConnectCloseEventIfNeeded()"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| ef304e25_a25b_693c_82b3_0eb2c9334eb7 e06a1624_97e7_719b_83f4_41463045636c["handlePathEvents()"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| e06a1624_97e7_719b_83f4_41463045636c 800fad5b_da38_9e46_d584_579345b38410["handleWritableStreams()"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| 800fad5b_da38_9e46_d584_579345b38410 d7575fb7_9073_0e3e_6ab3_7d2612f1eb16["flushParent()"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| d7575fb7_9073_0e3e_6ab3_7d2612f1eb16 7ed04228_8203_18ea_57b2_766b3ee23bb7["recvDatagram()"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| 7ed04228_8203_18ea_57b2_766b3ee23bb7 4c5c4c1a_01ba_f361_2baa_f00270cfb942["recvStream()"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| 4c5c4c1a_01ba_f361_2baa_f00270cfb942 style 4cae79d3_92ee_29bb_03d0_6a120cc97031 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicChannel.java lines 1683–1726
private void processReceived(QuicheQuicConnection conn) {
// Handle pending channelActive if needed.
if (handlePendingChannelActive(conn)) {
// Connection was closed right away.
return;
}
notifyAboutHandshakeCompletionIfNeeded(conn, null);
fireConnectCloseEventIfNeeded(conn);
if (conn.isFreed()) {
return;
}
long connAddr = conn.address();
if (Quiche.quiche_conn_is_established(connAddr) ||
Quiche.quiche_conn_is_in_early_data(connAddr)) {
long uniLeftOld = uniStreamsLeft;
long bidiLeftOld = bidiStreamsLeft;
// Only fetch new stream info when we used all our credits
if (uniLeftOld == 0 || bidiLeftOld == 0) {
long uniLeft = Quiche.quiche_conn_peer_streams_left_uni(connAddr);
long bidiLeft = Quiche.quiche_conn_peer_streams_left_bidi(connAddr);
uniStreamsLeft = uniLeft;
bidiStreamsLeft = bidiLeft;
if (uniLeftOld != uniLeft || bidiLeftOld != bidiLeft) {
pipeline().fireUserEventTriggered(QuicStreamLimitChangedEvent.INSTANCE);
}
}
handlePathEvents(conn);
if (handleWritableStreams(conn)) {
// Some data was produced, let's flush.
flushParent();
}
datagramReadable = true;
streamReadable = true;
recvDatagram(conn);
recvStream(conn);
}
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does processReceived() do?
processReceived() is a function in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicChannel.java.
Where is processReceived() defined?
processReceived() is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicChannel.java at line 1683.
What does processReceived() call?
processReceived() calls 8 function(s): fireConnectCloseEventIfNeeded, flushParent, handlePathEvents, handlePendingChannelActive, handleWritableStreams, notifyAboutHandshakeCompletionIfNeeded, recvDatagram, recvStream.
What calls processReceived()?
processReceived() is called by 2 function(s): Runnable, connectionRecv.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free