LCOV - code coverage report
Current view: top level - source/common/upstream - load_balancer_factory_base.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 5 5 100.0 %
Date: 2024-01-05 06:35:25 Functions: 21 21 100.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "envoy/upstream/load_balancer.h"
       4             : 
       5             : namespace Envoy {
       6             : namespace Upstream {
       7             : 
       8             : /**
       9             :  * Base class for cluster provided load balancers and load balancers specified by load balancing
      10             :  * policy config. This class should be extended directly if the load balancing policy specifies a
      11             :  * thread-aware load balancer.
      12             :  *
      13             :  * TODO: provide a ThreadLocalLoadBalancer construct to abstract away thread-awareness from load
      14             :  * balancing extensions that don't require it.
      15             :  */
      16             : template <class Proto> class TypedLoadBalancerFactoryBase : public TypedLoadBalancerFactory {
      17             : public:
      18             :   // Upstream::TypedLoadBalancerFactory
      19         970 :   std::string name() const override { return name_; }
      20             : 
      21          62 :   ProtobufTypes::MessagePtr createEmptyConfigProto() override {
      22          62 :     return ProtobufTypes::MessagePtr{new Proto()};
      23          62 :   }
      24             : 
      25             : protected:
      26          69 :   TypedLoadBalancerFactoryBase(const std::string& name) : name_(name) {}
      27             : 
      28             : private:
      29             :   const std::string name_;
      30             : };
      31             : 
      32             : } // namespace Upstream
      33             : } // namespace Envoy

Generated by: LCOV version 1.15