summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.inl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.inl')
-rw-r--r--TAO/orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.inl27
1 files changed, 27 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.inl b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.inl
new file mode 100644
index 00000000000..e59193f3c6f
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.inl
@@ -0,0 +1,27 @@
+// -*- C++ -*-
+//
+// $Id$
+
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE CORBA::Float
+TAO_LB_LeastLoaded::effective_load (CORBA::Float previous_load,
+ CORBA::Float new_load)
+{
+ // Apply per-balance load. (Recompute raw load)
+ previous_load += this->per_balance_load_;
+
+ // Apply dampening. (Recompute new raw load)
+ CORBA::Float result =
+ this->dampening_ * previous_load + (1 - this->dampening_) * new_load;
+
+ ACE_ASSERT (this->tolerance_ != 0);
+
+ // Compute the effective load.
+ result /= this->tolerance_;
+
+ return result;
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL