Home / Function/ handlePathEvents() — netty Function Reference

handlePathEvents() — netty Function Reference

Architecture documentation for the handlePathEvents() function in QuicheQuicChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  e06a1624_97e7_719b_83f4_41463045636c["handlePathEvents()"]
  981bac79_4fa5_9e57_50c8_e12d0b35f6d4["QuicChannelUnsafe"]
  e06a1624_97e7_719b_83f4_41463045636c -->|defined in| 981bac79_4fa5_9e57_50c8_e12d0b35f6d4
  4cae79d3_92ee_29bb_03d0_6a120cc97031["processReceived()"]
  4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| e06a1624_97e7_719b_83f4_41463045636c
  style e06a1624_97e7_719b_83f4_41463045636c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicChannel.java lines 1728–1773

        private void handlePathEvents(QuicheQuicConnection conn) {
            long event;
            while (!conn.isFreed() && (event = Quiche.quiche_conn_path_event_next(conn.address())) > 0) {
                try {
                    int type = Quiche.quiche_path_event_type(event);

                    if (type == Quiche.QUICHE_PATH_EVENT_NEW) {
                        Object[] ret = Quiche.quiche_path_event_new(event);
                        InetSocketAddress local = (InetSocketAddress) ret[0];
                        InetSocketAddress peer = (InetSocketAddress) ret[1];
                        pipeline().fireUserEventTriggered(new QuicPathEvent.New(local, peer));
                    } else if (type == Quiche.QUICHE_PATH_EVENT_VALIDATED) {
                        Object[] ret = Quiche.quiche_path_event_validated(event);
                        InetSocketAddress local = (InetSocketAddress) ret[0];
                        InetSocketAddress peer = (InetSocketAddress) ret[1];
                        pipeline().fireUserEventTriggered(new QuicPathEvent.Validated(local, peer));
                    } else if (type == Quiche.QUICHE_PATH_EVENT_FAILED_VALIDATION) {
                        Object[] ret = Quiche.quiche_path_event_failed_validation(event);
                        InetSocketAddress local = (InetSocketAddress) ret[0];
                        InetSocketAddress peer = (InetSocketAddress) ret[1];
                        pipeline().fireUserEventTriggered(new QuicPathEvent.FailedValidation(local, peer));
                    } else if (type == Quiche.QUICHE_PATH_EVENT_CLOSED) {
                        Object[] ret = Quiche.quiche_path_event_closed(event);
                        InetSocketAddress local = (InetSocketAddress) ret[0];
                        InetSocketAddress peer = (InetSocketAddress) ret[1];
                        pipeline().fireUserEventTriggered(new QuicPathEvent.Closed(local, peer));
                    } else if (type == Quiche.QUICHE_PATH_EVENT_REUSED_SOURCE_CONNECTION_ID) {
                        Object[] ret = Quiche.quiche_path_event_reused_source_connection_id(event);
                        Long seq = (Long) ret[0];
                        InetSocketAddress localOld = (InetSocketAddress) ret[1];
                        InetSocketAddress peerOld = (InetSocketAddress) ret[2];
                        InetSocketAddress local = (InetSocketAddress) ret[3];
                        InetSocketAddress peer = (InetSocketAddress) ret[4];
                        pipeline().fireUserEventTriggered(
                                new QuicPathEvent.ReusedSourceConnectionId(seq, localOld, peerOld, local, peer));
                    } else if (type == Quiche.QUICHE_PATH_EVENT_PEER_MIGRATED) {
                        Object[] ret = Quiche.quiche_path_event_peer_migrated(event);
                        InetSocketAddress local = (InetSocketAddress) ret[0];
                        InetSocketAddress peer = (InetSocketAddress) ret[1];
                        pipeline().fireUserEventTriggered(new QuicPathEvent.PeerMigrated(local, peer));
                    }
                } finally {
                    Quiche.quiche_path_event_free(event);
                }
            }
        }

Domain

Subdomains

Called By

Frequently Asked Questions

What does handlePathEvents() do?
handlePathEvents() is a function in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicChannel.java.
Where is handlePathEvents() defined?
handlePathEvents() is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicChannel.java at line 1728.
What calls handlePathEvents()?
handlePathEvents() is called by 1 function(s): processReceived.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free