#pragma once #include "envoy/server/transport_socket_config.h" #include "extensions/transport_sockets/well_known_names.h" namespace Envoy { namespace Extensions { namespace TransportSockets { namespace Alts { // ALTS config registry class AltsTransportSocketConfigFactory : public virtual Server::Configuration::TransportSocketConfigFactory { public: ProtobufTypes::MessagePtr createEmptyConfigProto() override; std::string name() const override { return TransportSocketNames::get().Alts; } }; class UpstreamAltsTransportSocketConfigFactory : public AltsTransportSocketConfigFactory, public Server::Configuration::UpstreamTransportSocketConfigFactory { public: Network::TransportSocketFactoryPtr createTransportSocketFactory(const Protobuf::Message&, Server::Configuration::TransportSocketFactoryContext&) override; }; class DownstreamAltsTransportSocketConfigFactory : public AltsTransportSocketConfigFactory, public Server::Configuration::DownstreamTransportSocketConfigFactory { public: Network::TransportSocketFactoryPtr createTransportSocketFactory(const Protobuf::Message&, Server::Configuration::TransportSocketFactoryContext&, const std::vector&) override; }; } // namespace Alts } // namespace TransportSockets } // namespace Extensions } // namespace Envoy