コード例 #1
0
        // methods
        public ICluster BuildCluster()
        {
            IStreamFactory streamFactory = new TcpStreamFactory(_tcpStreamSettings);

            if (_sslStreamSettings != null)
            {
                streamFactory = new SslStreamFactory(_sslStreamSettings, streamFactory);
            }

            streamFactory = _streamFactoryWrapper(streamFactory);

            var connectionFactory = new BinaryConnectionFactory(
                _connectionSettings,
                streamFactory,
                _connectionListener);

            var connectionPoolFactory = new ExclusiveConnectionPoolFactory(
                _connectionPoolSettings,
                connectionFactory,
                _connectionPoolListener);

            var serverFactory = new ServerFactory(
                _serverSettings,
                connectionPoolFactory,
                connectionFactory,
                _serverListener);

            var clusterFactory = new ClusterFactory(
                _clusterSettings,
                serverFactory,
                _clusterListener);

            return(clusterFactory.CreateCluster());
        }
コード例 #2
0
        // methods
        public ICluster BuildCluster()
        {
            IStreamFactory streamFactory = new TcpStreamFactory(_tcpStreamSettings);

            // TODO: SSL gets handled here specifically...

            streamFactory = _streamFactoryWrapper(streamFactory);

            var connectionFactory = new BinaryConnectionFactory(
                _connectionSettings,
                streamFactory,
                _connectionListener);

            var connectionPoolFactory = new ExclusiveConnectionPoolFactory(
                _connectionPoolSettings,
                connectionFactory,
                _connectionPoolListener);

            var serverFactory = new ServerFactory(
                _serverSettings,
                connectionPoolFactory,
                connectionFactory,
                _serverListener);

            var clusterFactory = new ClusterFactory(
                _clusterSettings,
                serverFactory,
                _clusterListener);

            return(clusterFactory.CreateCluster());
        }
コード例 #3
0
        // methods
        /// <summary>
        /// Builds the cluster.
        /// </summary>
        /// <returns>A cluster.</returns>
        public ICluster BuildCluster()
        {
            IStreamFactory streamFactory = new TcpStreamFactory(_tcpStreamSettings);

            if (_sslStreamSettings != null)
            {
                streamFactory = new SslStreamFactory(_sslStreamSettings, streamFactory);
            }

            streamFactory = _streamFactoryWrapper(streamFactory);

            var connectionFactory = new BinaryConnectionFactory(
                _connectionSettings,
                streamFactory,
                _eventAggregator);

            var connectionPoolFactory = new ExclusiveConnectionPoolFactory(
                _connectionPoolSettings,
                connectionFactory,
                _eventAggregator);

            var serverMonitorConnectionSettings = _connectionSettings.With(authenticators: new IAuthenticator[] { });
            var serverMonitorConnectionFactory  = new BinaryConnectionFactory(
                serverMonitorConnectionSettings,
                streamFactory,
                new EventAggregator());
            var serverMonitorFactory = new ServerMonitorFactory(
                _serverSettings,
                serverMonitorConnectionFactory,
                _eventAggregator);

            var serverFactory = new ServerFactory(
                _clusterSettings.ConnectionMode,
                _serverSettings,
                connectionPoolFactory,
                serverMonitorFactory,
                _eventAggregator);

            var clusterFactory = new ClusterFactory(
                _clusterSettings,
                serverFactory,
                _eventAggregator);

            return(clusterFactory.CreateCluster());
        }
コード例 #4
0
        // methods
        private ICluster CreateCluster(ClusterKey clusterKey)
        {
            var clusterSettings        = CreateClusterSettings(clusterKey);
            var serverSettings         = CreateServerSettings(clusterKey);
            var connectionSettings     = CreateConnectionSettings(clusterKey);
            var connectionPoolSettings = CreateConnectionPoolSettings(clusterKey);

            var listener              = EmptyListener.Instance;
            var streamFactory         = CreateStreamFactory(clusterKey);
            var connectionFactory     = new BinaryConnectionFactory(connectionSettings, streamFactory, listener);
            var connectionPoolFactory = new ExclusiveConnectionPoolFactory(connectionPoolSettings, connectionFactory, listener);
            var serverFactory         = new ServerFactory(serverSettings, connectionPoolFactory, connectionFactory, listener);
            var clusterFactory        = new ClusterFactory(clusterSettings, serverFactory, listener);

            var cluster = clusterFactory.CreateCluster();

            cluster.Initialize();

            return(cluster);
        }