LCOV - code coverage report
Current view: top level - source/extensions/transport_sockets/internal_upstream - config.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 1 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 1 0.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "envoy/extensions/transport_sockets/internal_upstream/v3/internal_upstream.pb.h"
       4             : #include "envoy/server/transport_socket_config.h"
       5             : #include "envoy/stats/stats_macros.h"
       6             : 
       7             : #include "source/common/common/logger.h"
       8             : #include "source/extensions/io_socket/user_space/io_handle.h"
       9             : #include "source/extensions/transport_sockets/common/passthrough.h"
      10             : 
      11             : namespace Envoy {
      12             : namespace Extensions {
      13             : namespace TransportSockets {
      14             : namespace InternalUpstream {
      15             : 
      16             : #define ALL_INTERNAL_UPSTREAM_STATS(COUNTER) COUNTER(no_metadata)
      17             : 
      18             : /**
      19             :  * Struct definition for all internal transport socket stats. @see stats_macros.h
      20             :  */
      21             : struct InternalUpstreamStats {
      22             :   ALL_INTERNAL_UPSTREAM_STATS(GENERATE_COUNTER_STRUCT)
      23             : };
      24             : 
      25             : class Config : public Logger::Loggable<Logger::Id::upstream> {
      26             : public:
      27             :   Config(
      28             :       const envoy::extensions::transport_sockets::internal_upstream::v3::InternalUpstreamTransport&
      29             :           config_proto,
      30             :       Stats::Scope& scope);
      31             :   std::unique_ptr<envoy::config::core::v3::Metadata>
      32             :   extractMetadata(const Upstream::HostDescriptionConstSharedPtr& host) const;
      33             : 
      34             : private:
      35             :   enum class MetadataKind { Host, Cluster };
      36             :   struct MetadataSource {
      37           0 :     MetadataSource(MetadataKind kind, const std::string& name) : kind_(kind), name_(name) {}
      38             :     const MetadataKind kind_;
      39             :     const std::string name_;
      40             :   };
      41             :   InternalUpstreamStats stats_;
      42             :   std::vector<MetadataSource> metadata_sources_;
      43             : };
      44             : 
      45             : class InternalSocketFactory : public PassthroughFactory {
      46             : public:
      47             :   InternalSocketFactory(
      48             :       Server::Configuration::TransportSocketFactoryContext& context,
      49             :       const envoy::extensions::transport_sockets::internal_upstream::v3::InternalUpstreamTransport&
      50             :           config_proto,
      51             :       Network::UpstreamTransportSocketFactoryPtr&& inner_factory);
      52             : 
      53             :   Network::TransportSocketPtr
      54             :   createTransportSocket(Network::TransportSocketOptionsConstSharedPtr options,
      55             :                         Upstream::HostDescriptionConstSharedPtr host) const override;
      56             : 
      57             : private:
      58             :   const Config config_;
      59             : };
      60             : 
      61             : } // namespace InternalUpstream
      62             : } // namespace TransportSockets
      63             : } // namespace Extensions
      64             : } // namespace Envoy

Generated by: LCOV version 1.15