LCOV - code coverage report
Current view: top level - source/extensions/upstreams/tcp - config.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 7 17 41.2 %
Date: 2024-01-05 06:35:25 Functions: 3 6 50.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include <chrono>
       4             : #include <cstdint>
       5             : #include <functional>
       6             : #include <list>
       7             : #include <map>
       8             : #include <string>
       9             : 
      10             : #include "envoy/config/core/v3/extension.pb.h"
      11             : #include "envoy/config/core/v3/protocol.pb.h"
      12             : #include "envoy/extensions/upstreams/tcp/v3/tcp_protocol_options.pb.h"
      13             : #include "envoy/extensions/upstreams/tcp/v3/tcp_protocol_options.pb.validate.h"
      14             : #include "envoy/server/filter_config.h"
      15             : #include "envoy/server/transport_socket_config.h"
      16             : 
      17             : #include "source/common/common/logger.h"
      18             : #include "source/common/protobuf/message_validator_impl.h"
      19             : 
      20             : namespace Envoy {
      21             : namespace Extensions {
      22             : namespace Upstreams {
      23             : namespace Tcp {
      24             : 
      25             : class ProtocolOptionsConfigImpl : public Upstream::ProtocolOptionsConfig {
      26             : public:
      27             :   ProtocolOptionsConfigImpl(
      28             :       const envoy::extensions::upstreams::tcp::v3::TcpProtocolOptions& options);
      29             : 
      30           0 :   absl::optional<std::chrono::milliseconds> idleTimeout() const { return idle_timeout_; }
      31             : 
      32             : private:
      33             :   absl::optional<std::chrono::milliseconds> idle_timeout_;
      34             : };
      35             : 
      36             : class ProtocolOptionsConfigFactory : public Server::Configuration::ProtocolOptionsFactory {
      37             : public:
      38             :   Upstream::ProtocolOptionsConfigConstSharedPtr createProtocolOptionsConfig(
      39             :       const Protobuf::Message& config,
      40           0 :       Server::Configuration::ProtocolOptionsFactoryContext& context) override {
      41           0 :     const auto& typed_config = MessageUtil::downcastAndValidate<
      42           0 :         const envoy::extensions::upstreams::tcp::v3::TcpProtocolOptions&>(
      43           0 :         config, context.messageValidationVisitor());
      44           0 :     return std::make_shared<ProtocolOptionsConfigImpl>(typed_config);
      45           0 :   }
      46         112 :   std::string category() const override { return "envoy.upstream_options"; }
      47         302 :   std::string name() const override {
      48         302 :     return "envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions";
      49         302 :   }
      50          24 :   ProtobufTypes::MessagePtr createEmptyConfigProto() override {
      51          24 :     return std::make_unique<envoy::extensions::upstreams::tcp::v3::TcpProtocolOptions>();
      52          24 :   }
      53           0 :   ProtobufTypes::MessagePtr createEmptyProtocolOptionsProto() override {
      54           0 :     return std::make_unique<envoy::extensions::upstreams::tcp::v3::TcpProtocolOptions>();
      55           0 :   }
      56             : };
      57             : 
      58             : DECLARE_FACTORY(ProtocolOptionsConfigFactory);
      59             : 
      60             : } // namespace Tcp
      61             : } // namespace Upstreams
      62             : } // namespace Extensions
      63             : } // namespace Envoy

Generated by: LCOV version 1.15