private RaftHttpCluster(RaftClusterMemberConfiguration config, out MutableMemberCollection members) : base(config, out members) { OpenConnectionForEachRequest = config.OpenConnectionForEachRequest; allowedNetworks = config.AllowedNetworks; metadata = new MemberMetadata(config.Metadata); RequestTimeout = TimeSpan.FromMilliseconds(config.UpperElectionTimeout); duplicationDetector = new DuplicateRequestDetector(config.RequestJournal); clientHandlerName = config.ClientHandlerName; }
private protected RaftHttpCluster(IServiceProvider dependencies, out MutableMemberCollection members) : this(dependencies.GetRequiredService <IOptionsMonitor <RaftClusterMemberConfiguration> >(), dependencies, out members) { }
private RaftHttpCluster(IOptionsMonitor <RaftClusterMemberConfiguration> config, IServiceProvider dependencies, out MutableMemberCollection members) : this(config.CurrentValue, out members) { configurator = dependencies.GetService <IRaftClusterConfigurator>(); messageHandler = dependencies.GetService <IMessageHandler>(); AuditTrail = dependencies.GetService <IPersistentState>(); hostingAddresses = dependencies.GetRequiredService <IServer>().GetHostingAddresses; httpHandlerFactory = dependencies.GetService <IHttpMessageHandlerFactory>(); var loggerFactory = dependencies.GetRequiredService <ILoggerFactory>(); Logger = loggerFactory.CreateLogger(GetType()); //track changes in configuration configurationTracker = config.OnChange(ConfigurationChanged); }