Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/common/optref.h" 4 : #include "envoy/config/typed_config.h" 5 : #include "envoy/network/transport_socket.h" 6 : 7 : #include "quiche/quic/core/quic_crypto_client_stream.h" 8 : #include "quiche/quic/core/quic_session.h" 9 : 10 : namespace Envoy { 11 : namespace Quic { 12 : 13 : class EnvoyQuicCryptoClientStreamFactoryInterface { 14 : public: 15 0 : virtual ~EnvoyQuicCryptoClientStreamFactoryInterface() = default; 16 : 17 : // Return an Envoy specific quic crypto client stream object. 18 : virtual std::unique_ptr<quic::QuicCryptoClientStreamBase> 19 : createEnvoyQuicCryptoClientStream(const quic::QuicServerId& server_id, quic::QuicSession* session, 20 : std::unique_ptr<quic::ProofVerifyContext> verify_context, 21 : quic::QuicCryptoClientConfig* crypto_config, 22 : quic::QuicCryptoClientStream::ProofHandler* proof_handler, 23 : bool has_application_state) PURE; 24 : }; 25 : 26 : } // namespace Quic 27 : } // namespace Envoy