Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/extensions/quic/crypto_stream/v3/crypto_stream.pb.h" 4 : #include "envoy/registry/registry.h" 5 : 6 : #include "source/common/quic/envoy_quic_server_crypto_stream_factory.h" 7 : 8 : namespace Envoy { 9 : namespace Quic { 10 : 11 : class EnvoyQuicCryptoServerStreamFactoryImpl : public EnvoyQuicCryptoServerStreamFactoryInterface { 12 : public: 13 12 : ProtobufTypes::MessagePtr createEmptyConfigProto() override { 14 12 : return std::make_unique<envoy::extensions::quic::crypto_stream::v3::CryptoServerStreamConfig>(); 15 12 : } 16 147 : std::string name() const override { return "envoy.quic.crypto_stream.server.quiche"; } 17 : std::unique_ptr<quic::QuicCryptoServerStreamBase> createEnvoyQuicCryptoServerStream( 18 : const quic::QuicCryptoServerConfig* crypto_config, 19 : quic::QuicCompressedCertsCache* compressed_certs_cache, quic::QuicSession* session, 20 : quic::QuicCryptoServerStreamBase::Helper* helper, 21 : OptRef<const Network::DownstreamTransportSocketFactory> transport_socket_factory, 22 : Envoy::Event::Dispatcher& dispatcher) override; 23 : }; 24 : 25 : DECLARE_FACTORY(EnvoyQuicCryptoServerStreamFactoryImpl); 26 : 27 : } // namespace Quic 28 : } // namespace Envoy