private Cluster(IEnumerable <object> contactPoints, Configuration configuration, IClusterLifecycleManager lifecycleManager) { Configuration = configuration; _metadata = new Metadata(configuration); TaskHelper.WaitToComplete(AddHosts(contactPoints)); var protocolVersion = _maxProtocolVersion; if (Configuration.ProtocolOptions.MaxProtocolVersionValue != null && Configuration.ProtocolOptions.MaxProtocolVersionValue.Value.IsSupported()) { protocolVersion = Configuration.ProtocolOptions.MaxProtocolVersionValue.Value; } _protocolEventDebouncer = new ProtocolEventDebouncer( configuration.TimerFactory, TimeSpan.FromMilliseconds(configuration.MetadataSyncOptions.RefreshSchemaDelayIncrement), TimeSpan.FromMilliseconds(configuration.MetadataSyncOptions.MaxTotalRefreshSchemaDelay)); _controlConnection = configuration.ControlConnectionFactory.Create(_protocolEventDebouncer, protocolVersion, Configuration, _metadata); _metadata.ControlConnection = _controlConnection; _serializer = _controlConnection.Serializer; _sessionFactory = configuration.SessionFactoryBuilder.BuildWithCluster(this); _lifecycleManager = lifecycleManager ?? new ClusterLifecycleManager(this); }
internal static Cluster BuildFrom(IInitializer initializer, IReadOnlyList <string> hostNames, Configuration config, IClusterLifecycleManager manager) { hostNames = hostNames ?? new string[0]; if (initializer.ContactPoints.Count == 0 && hostNames.Count == 0) { throw new ArgumentException("Cannot build a cluster without contact points"); } return(new Cluster( initializer.ContactPoints.Cast <object>().Concat(hostNames), config ?? initializer.GetConfiguration(), manager)); }
public Cluster Create(IInitializer initializer, IReadOnlyList <string> hostnames, Configuration config, IClusterLifecycleManager lifecycleManager) { return(Cluster.BuildFrom(initializer, hostnames, config, lifecycleManager)); }