public ServiceDiscoveryClusterProvider([NotNull] IServiceLocator serviceLocator, [NotNull] string environment, [NotNull] string application, [CanBeNull] ILog log)
        {
            this.serviceLocator = serviceLocator ?? throw new ArgumentNullException(nameof(serviceLocator));
            this.environment    = environment ?? throw new ArgumentNullException(nameof(environment));
            this.application    = application ?? throw new ArgumentNullException(nameof(application));
            this.log            = log ?? LogProvider.Get();

            transform = new CachingTransform <IServiceTopology, Uri[]>(ParseReplicas);
        }
Exemple #2
0
        /// <summary>
        /// Creates a new instance of <see cref="ZooKeeperClientSettings"/> using given <paramref name="replicasProvider"/>.
        /// </summary>
        public ZooKeeperClientSettings([NotNull] Func <IList <Uri> > replicasProvider)
        {
            if (replicasProvider == null)
            {
                throw new ArgumentNullException(nameof(replicasProvider));
            }

            var transform = new CachingTransform <IList <Uri>, string>(BuildConnectionString);

            ConnectionStringProvider = () => transform.Get(replicasProvider());
        }
        public SnitchWeightModifier(
            [NotNull] IServiceLocator serviceLocator,
            [NotNull] string environment,
            [NotNull] string application,
            [CanBeNull] ILog log)
        {
            this.serviceLocator = serviceLocator ?? throw new ArgumentNullException(nameof(serviceLocator));
            this.environment    = environment ?? throw new ArgumentNullException(nameof(environment));
            this.application    = application ?? throw new ArgumentNullException(nameof(application));
            this.log            = log ?? LogProvider.Get();

            transform = new CachingTransform <IServiceTopology, ReplicaWeights>(ExtractWeights);
        }
        public RepeatingClusterProvider(IClusterProvider provider, int repeatCount)
        {
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }

            if (repeatCount <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(repeatCount), "Repeat count must be positive.");
            }

            cache = new CachingTransform <IList <Uri>, IList <Uri> >(x => Repeat(x, repeatCount), provider.GetCluster);
        }
Exemple #5
0
        internal FileLog(IMultiFileMuxer muxer, Func <FileLogSettings> settingsProvider)
        {
            this.settingsProvider = new SafeSettingsProvider(settingsProvider);
            this.settingsProvider.Get();
            this.muxer = muxer;

            muxerHandle           = new object();
            muxerHandleRef        = new WeakReference(muxerHandle);
            muxerRegistrationLock = new object();
            eventsLost            = new AtomicLong(0);

            filePathProvider = new CachingTransform <FileLogSettings, FilePath>(
                settings => new FilePath(settings.FilePath), preventParallelProcessing: false);
        }
        public void TestSetup()
        {
            providedValue = "xxx";

            processorCalls = 0;

            transform = new CachingTransform <string, string>(
                i =>
            {
                processorCalls++;
                return(i.ToUpper());
            },
                () => providedValue,
                preventParallelProcessing: preventParallelProcessing);
        }
 public IclCache(IIclRulesSettingsProvider iclRulesSettingsProvider)
 {
     cache = new CachingTransform <IdempotencySettings, List <IdempotencyControlRule> >(PreprocessSettings, iclRulesSettingsProvider.Get);
 }
 public NonIdempotencySignsCache(INonIdempotencySignsSettingsProvider nonIdempotencySignsSettingsProvider)
 {
     cache = new CachingTransform <NonIdempotencySignsSettings, List <NonIdempotencySign> >(
         PreprocessSigns,
         nonIdempotencySignsSettingsProvider.Get);
 }
Exemple #9
0
 public TransformingClusterProvider(IClusterProvider provider, IReplicaTransform transform)
 {
     this.transform = transform;
     cache          = new CachingTransform <IList <Uri>, IList <Uri> >(ApplyTransform, provider.GetCluster);
 }