Example #1
0
        /// <summary>
        /// Helper method to retrieve the distance from LoadBalancingPolicy and set it at Host level.
        /// Once ProfileManager is implemented, this logic will be part of it.
        /// </summary>
        internal static HostDistance RetrieveDistance(Host host, ILoadBalancingPolicy lbp)
        {
            var distance = lbp.Distance(host);

            host.SetDistance(distance);
            return(distance);
        }
        /// <inheritdoc />
        HostDistance IInternalCluster.RetrieveAndSetDistance(Host host)
        {
            var distance = _loadBalancingPolicies[0].Distance(host);

            for (var i = 1; i < _loadBalancingPolicies.Count; i++)
            {
                var lbp         = _loadBalancingPolicies[i];
                var lbpDistance = lbp.Distance(host);
                if (lbpDistance < distance)
                {
                    distance = lbpDistance;
                }
            }

            host.SetDistance(distance);
            return(distance);
        }