Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/http/codec.h" 4 : #include "envoy/registry/registry.h" 5 : 6 : #include "source/common/common/assert.h" 7 : #include "source/common/common/logger.h" 8 : #include "source/common/quic/codec_impl.h" 9 : #include "source/common/quic/envoy_quic_client_session.h" 10 : 11 : namespace Envoy { 12 : namespace Quic { 13 : 14 : class QuicHttpClientConnectionImpl : public QuicHttpConnectionImplBase, 15 : public Http::ClientConnection { 16 : public: 17 : QuicHttpClientConnectionImpl(EnvoyQuicClientSession& session, 18 : Http::ConnectionCallbacks& callbacks, Http::Http3::CodecStats& stats, 19 : const envoy::config::core::v3::Http3ProtocolOptions& http3_options, 20 : const uint32_t max_request_headers_kb, 21 : const uint32_t max_response_headers_count); 22 : 23 : // Http::ClientConnection 24 : Http::RequestEncoder& newStream(Http::ResponseDecoder& response_decoder) override; 25 : 26 : // Http::Connection 27 : void goAway() override; 28 0 : void shutdownNotice() override {} 29 : void onUnderlyingConnectionAboveWriteBufferHighWatermark() override; 30 : void onUnderlyingConnectionBelowWriteBufferLowWatermark() override; 31 : 32 : private: 33 : EnvoyQuicClientSession& quic_client_session_; 34 : }; 35 : 36 : } // namespace Quic 37 : } // namespace Envoy