Line data Source code
1 : #include "source/extensions/access_loggers/grpc/tcp_config.h" 2 : 3 : #include "envoy/extensions/access_loggers/grpc/v3/als.pb.h" 4 : #include "envoy/extensions/access_loggers/grpc/v3/als.pb.validate.h" 5 : #include "envoy/registry/registry.h" 6 : #include "envoy/server/filter_config.h" 7 : 8 : #include "source/common/common/assert.h" 9 : #include "source/common/common/macros.h" 10 : #include "source/common/grpc/async_client_impl.h" 11 : #include "source/common/protobuf/protobuf.h" 12 : #include "source/extensions/access_loggers/grpc/config_utils.h" 13 : #include "source/extensions/access_loggers/grpc/grpc_access_log_proto_descriptors.h" 14 : #include "source/extensions/access_loggers/grpc/tcp_grpc_access_log_impl.h" 15 : 16 : namespace Envoy { 17 : namespace Extensions { 18 : namespace AccessLoggers { 19 : namespace TcpGrpc { 20 : 21 : AccessLog::InstanceSharedPtr 22 : TcpGrpcAccessLogFactory::createAccessLogInstance(const Protobuf::Message& config, 23 : AccessLog::FilterPtr&& filter, 24 0 : Server::Configuration::FactoryContext& context) { 25 0 : GrpcCommon::validateProtoDescriptors(); 26 : 27 0 : const auto& proto_config = MessageUtil::downcastAndValidate< 28 0 : const envoy::extensions::access_loggers::grpc::v3::TcpGrpcAccessLogConfig&>( 29 0 : config, context.messageValidationVisitor()); 30 : 31 0 : return std::make_shared<TcpGrpcAccessLog>( 32 0 : std::move(filter), proto_config, context.serverFactoryContext().threadLocal(), 33 0 : GrpcCommon::getGrpcAccessLoggerCacheSingleton(context.serverFactoryContext())); 34 0 : } 35 : 36 2 : ProtobufTypes::MessagePtr TcpGrpcAccessLogFactory::createEmptyConfigProto() { 37 2 : return std::make_unique<envoy::extensions::access_loggers::grpc::v3::TcpGrpcAccessLogConfig>(); 38 2 : } 39 : 40 42 : std::string TcpGrpcAccessLogFactory::name() const { return "envoy.access_loggers.tcp_grpc"; } 41 : 42 : /** 43 : * Static registration for the TCP gRPC access log. @see RegisterFactory. 44 : */ 45 : LEGACY_REGISTER_FACTORY(TcpGrpcAccessLogFactory, AccessLog::AccessLogInstanceFactory, 46 : "envoy.tcp_grpc_access_log"); 47 : 48 : } // namespace TcpGrpc 49 : } // namespace AccessLoggers 50 : } // namespace Extensions 51 : } // namespace Envoy