public ExecutionProfileInfoProvider(
     IPolicyInfoMapper <ILoadBalancingPolicy> loadBalancingPolicyInfoProvider,
     IPolicyInfoMapper <ISpeculativeExecutionPolicy> speculativeExecutionPolicyInfoProvider,
     IPolicyInfoMapper <IExtendedRetryPolicy> retryPolicyInfoProvider)
 {
     _loadBalancingPolicyInfoProvider        = loadBalancingPolicyInfoProvider;
     _speculativeExecutionPolicyInfoProvider = speculativeExecutionPolicyInfoProvider;
     _retryPolicyInfoProvider = retryPolicyInfoProvider;
 }
Exemplo n.º 2
0
        private static PolicyInfo GetLoadBalancingPolicyInfo(ILoadBalancingPolicy policy, IPolicyInfoMapper <IReconnectionPolicy> reconnectionPolicyInfoMapper)
        {
            var loadBalancingPolicyType = policy.GetType();

            LoadBalancingPolicyInfoProvider.LoadBalancingPolicyOptionsProviders.TryGetValue(loadBalancingPolicyType, out var loadBalancingPolicyOptionsProvider);

            return(new PolicyInfo
            {
                Namespace = loadBalancingPolicyType.Namespace,
                Type = loadBalancingPolicyType.Name,
                Options = loadBalancingPolicyOptionsProvider?.Invoke(policy, reconnectionPolicyInfoMapper)
            });
        }
Exemplo n.º 3
0
 public LoadBalancingPolicyInfoProvider(IPolicyInfoMapper <IReconnectionPolicy> reconnectionPolicyInfoMapper)
 {
     _reconnectionPolicyInfoMapper = reconnectionPolicyInfoMapper;
 }