Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/server/transport_socket_config.h" 4 : 5 : namespace Envoy { 6 : namespace Extensions { 7 : namespace TransportSockets { 8 : namespace Tap { 9 : 10 : /** 11 : * Config registration for the tap wrapper for transport socket factory. 12 : * @see TransportSocketConfigFactory. 13 : */ 14 : class TapSocketConfigFactory : public virtual Server::Configuration::TransportSocketConfigFactory { 15 : public: 16 76 : std::string name() const override { return "envoy.transport_sockets.tap"; } 17 : ProtobufTypes::MessagePtr createEmptyConfigProto() override; 18 : }; 19 : 20 : class UpstreamTapSocketConfigFactory 21 : : public Server::Configuration::UpstreamTransportSocketConfigFactory, 22 : public TapSocketConfigFactory { 23 : public: 24 : Network::UpstreamTransportSocketFactoryPtr createTransportSocketFactory( 25 : const Protobuf::Message& config, 26 : Server::Configuration::TransportSocketFactoryContext& context) override; 27 : }; 28 : 29 : class DownstreamTapSocketConfigFactory 30 : : public Server::Configuration::DownstreamTransportSocketConfigFactory, 31 : public TapSocketConfigFactory { 32 : public: 33 : Network::DownstreamTransportSocketFactoryPtr 34 : createTransportSocketFactory(const Protobuf::Message& config, 35 : Server::Configuration::TransportSocketFactoryContext& context, 36 : const std::vector<std::string>& server_names) override; 37 : }; 38 : 39 : } // namespace Tap 40 : } // namespace TransportSockets 41 : } // namespace Extensions 42 : } // namespace Envoy