LCOV - code coverage report
Current view: top level - source/common/network - connection_balancer_impl.cc (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 22 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 3 0.0 %

          Line data    Source code
       1             : #include "source/common/network/connection_balancer_impl.h"
       2             : 
       3             : namespace Envoy {
       4             : namespace Network {
       5             : 
       6           0 : void ExactConnectionBalancerImpl::registerHandler(BalancedConnectionHandler& handler) {
       7           0 :   absl::MutexLock lock(&lock_);
       8           0 :   handlers_.push_back(&handler);
       9           0 : }
      10             : 
      11           0 : void ExactConnectionBalancerImpl::unregisterHandler(BalancedConnectionHandler& handler) {
      12           0 :   absl::MutexLock lock(&lock_);
      13             :   // This could be made more efficient in various ways, but the number of listeners is generally
      14             :   // small and this is a rare operation so we can start with this and optimize later if this
      15             :   // becomes a perf bottleneck.
      16           0 :   handlers_.erase(std::find(handlers_.begin(), handlers_.end(), &handler));
      17           0 : }
      18             : 
      19             : BalancedConnectionHandler&
      20           0 : ExactConnectionBalancerImpl::pickTargetHandler(BalancedConnectionHandler&) {
      21           0 :   BalancedConnectionHandler* min_connection_handler = nullptr;
      22           0 :   {
      23           0 :     absl::MutexLock lock(&lock_);
      24           0 :     for (BalancedConnectionHandler* handler : handlers_) {
      25           0 :       if (min_connection_handler == nullptr ||
      26           0 :           handler->numConnections() < min_connection_handler->numConnections()) {
      27           0 :         min_connection_handler = handler;
      28           0 :       }
      29           0 :     }
      30             : 
      31           0 :     min_connection_handler->incNumConnections(); // NOLINT(clang-analyzer-core.CallAndMessage)
      32           0 :   }
      33             : 
      34           0 :   return *min_connection_handler;
      35           0 : }
      36             : 
      37             : } // namespace Network
      38             : } // namespace Envoy

Generated by: LCOV version 1.15