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

          Line data    Source code
       1             : #include "source/extensions/load_balancing_policies/ring_hash/config.h"
       2             : 
       3             : #include "source/extensions/load_balancing_policies/ring_hash/ring_hash_lb.h"
       4             : 
       5             : namespace Envoy {
       6             : namespace Extensions {
       7             : namespace LoadBalancingPolices {
       8             : namespace RingHash {
       9             : 
      10             : Upstream::ThreadAwareLoadBalancerPtr
      11             : Factory::create(OptRef<const Upstream::LoadBalancerConfig> lb_config,
      12             :                 const Upstream::ClusterInfo& cluster_info,
      13             :                 const Upstream::PrioritySet& priority_set, Runtime::Loader& runtime,
      14           0 :                 Random::RandomGenerator& random, TimeSource&) {
      15             : 
      16           0 :   auto active_or_legacy =
      17           0 :       Common::ActiveOrLegacy<Upstream::TypedRingHashLbConfig,
      18           0 :                              Upstream::LegacyRingHashLbConfig>::get(lb_config.ptr());
      19             : 
      20             :   // Assume legacy config.
      21           0 :   if (!active_or_legacy.hasActive()) {
      22           0 :     return std::make_unique<Upstream::RingHashLoadBalancer>(
      23           0 :         priority_set, cluster_info.lbStats(), cluster_info.statsScope(), runtime, random,
      24           0 :         !active_or_legacy.hasLegacy() ? cluster_info.lbRingHashConfig()
      25           0 :                                       : active_or_legacy.legacy()->lbConfig(),
      26           0 :         cluster_info.lbConfig());
      27           0 :   }
      28             : 
      29           0 :   return std::make_unique<Upstream::RingHashLoadBalancer>(
      30           0 :       priority_set, cluster_info.lbStats(), cluster_info.statsScope(), runtime, random,
      31           0 :       PROTOBUF_PERCENT_TO_ROUNDED_INTEGER_OR_DEFAULT(cluster_info.lbConfig(),
      32           0 :                                                      healthy_panic_threshold, 100, 50),
      33           0 :       active_or_legacy.active()->lb_config_);
      34           0 : }
      35             : 
      36             : /**
      37             :  * Static registration for the Factory. @see RegisterFactory.
      38             :  */
      39             : REGISTER_FACTORY(Factory, Upstream::TypedLoadBalancerFactory);
      40             : 
      41             : } // namespace RingHash
      42             : } // namespace LoadBalancingPolices
      43             : } // namespace Extensions
      44             : } // namespace Envoy

Generated by: LCOV version 1.15