/// <inheritdoc /> public override Http2MultiplexCodec Build() { var frameWriter = _frameWriter; if (frameWriter is object) { // This is to support our tests and will never be executed by the user as frameWriter(...) // is package-private. var connection = new DefaultHttp2Connection(IsServer, MaxReservedStreams); var maxHeaderListSize = InitialSettings.MaxHeaderListSize(); IHttp2FrameReader frameReader = new DefaultHttp2FrameReader(!maxHeaderListSize.HasValue ? new DefaultHttp2HeadersDecoder(IsValidateHeaders) : new DefaultHttp2HeadersDecoder(IsValidateHeaders, maxHeaderListSize.Value)); var frameLogger = FrameLogger; if (frameLogger is object) { frameWriter = new Http2OutboundFrameLogger(frameWriter, frameLogger); frameReader = new Http2InboundFrameLogger(frameReader, frameLogger); } IHttp2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(connection, frameWriter); if (EncoderEnforceMaxConcurrentStreams) { encoder = new StreamBufferingEncoder(encoder); } IHttp2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, frameReader, PromisedRequestVerifier, AutoAckSettingsFrame, AutoAckPingFrame); int maxConsecutiveEmptyDataFrames = DecoderEnforceMaxConsecutiveEmptyDataFrames; if ((uint)maxConsecutiveEmptyDataFrames > 0u) { decoder = new Http2EmptyDataFrameConnectionDecoder(decoder, maxConsecutiveEmptyDataFrames); } return(Build(decoder, encoder, InitialSettings)); } return(base.Build()); }
public DelegatingConnectionAdapter(StreamBufferingEncoder encoder) => _encoder = encoder;