Home / Function/ Http3ConnectionHandler() — netty Function Reference

Http3ConnectionHandler() — netty Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  567c49b8_a96d_1a53_a323_3ee453b48e16["Http3ConnectionHandler()"]
  af90c570_05df_8deb_a124_cbb127170343["Http3ConnectionHandler"]
  567c49b8_a96d_1a53_a323_3ee453b48e16 -->|defined in| af90c570_05df_8deb_a124_cbb127170343
  style 567c49b8_a96d_1a53_a323_3ee453b48e16 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http3/src/main/java/io/netty/handler/codec/http3/Http3ConnectionHandler.java lines 63–95

    Http3ConnectionHandler(boolean server, @Nullable ChannelHandler inboundControlStreamHandler,
                           @Nullable LongFunction<ChannelHandler> unknownInboundStreamHandlerFactory,
                           @Nullable Http3SettingsFrame localSettings, boolean disableQpackDynamicTable,
                           @Nullable Http3Settings.NonStandardHttp3SettingsValidator nonStandardSettingsValidator) {
        this.unknownInboundStreamHandlerFactory = unknownInboundStreamHandlerFactory;
        this.disableQpackDynamicTable = disableQpackDynamicTable;
        if (nonStandardSettingsValidator != null) {
            this.nonStandardSettingsValidator = nonStandardSettingsValidator;
        } else {
            this.nonStandardSettingsValidator = (id, value) -> false;
        }
        if (localSettings == null) {
            localSettings = new DefaultHttp3SettingsFrame();
        } else {
            localSettings = DefaultHttp3SettingsFrame.copyOf(localSettings);
        }
        Long maxFieldSectionSize = localSettings.get(Http3SettingsFrame.HTTP3_SETTINGS_MAX_FIELD_SECTION_SIZE);
        if (maxFieldSectionSize == null) {
             // Default value in rfc is unlimited
             // but Quic can have max 2^62-1 max value as TWO bits reserved for Variable-Length Integer Encoding
            maxFieldSectionSize = (1L << 62) - 1;
        }
        this.maxTableCapacity = localSettings.getOrDefault(HTTP3_SETTINGS_QPACK_MAX_TABLE_CAPACITY, 0);
        int maxBlockedStreams = toIntExact(localSettings.getOrDefault(HTTP3_SETTINGS_QPACK_BLOCKED_STREAMS, 0));
        qpackDecoder = new QpackDecoder(maxTableCapacity, maxBlockedStreams);
        qpackEncoder = new QpackEncoder();
        codecFactory = Http3FrameCodec.newFactory(qpackDecoder, maxFieldSectionSize, qpackEncoder);
        remoteControlStreamHandler =  new Http3ControlStreamOutboundHandler(server, localSettings,
                codecFactory.newCodec(Http3FrameTypeValidator.NO_VALIDATION, NO_STATE, NO_STATE,
                        this.nonStandardSettingsValidator));
        localControlStreamHandler = new Http3ControlStreamInboundHandler(server, inboundControlStreamHandler,
                qpackEncoder, remoteControlStreamHandler);
    }

Domain

Subdomains

Frequently Asked Questions

What does Http3ConnectionHandler() do?
Http3ConnectionHandler() is a function in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3ConnectionHandler.java.
Where is Http3ConnectionHandler() defined?
Http3ConnectionHandler() is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3ConnectionHandler.java at line 63.

Analyze Your Own Codebase

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

Try Supermodel Free