public ExecutionProfileInfoProvider( IPolicyInfoMapper <ILoadBalancingPolicy> loadBalancingPolicyInfoProvider, IPolicyInfoMapper <ISpeculativeExecutionPolicy> speculativeExecutionPolicyInfoProvider, IPolicyInfoMapper <IExtendedRetryPolicy> retryPolicyInfoProvider) { _loadBalancingPolicyInfoProvider = loadBalancingPolicyInfoProvider; _speculativeExecutionPolicyInfoProvider = speculativeExecutionPolicyInfoProvider; _retryPolicyInfoProvider = retryPolicyInfoProvider; }
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) }); }
public LoadBalancingPolicyInfoProvider(IPolicyInfoMapper <IReconnectionPolicy> reconnectionPolicyInfoMapper) { _reconnectionPolicyInfoMapper = reconnectionPolicyInfoMapper; }