Beispiel #1
0
        public static ConnectionPool PoolFor(RemoteClientConfiguration configuration)
        {
            lock (_connectionPools)
            {
                ConnectionPool pool;
                var            key = configuration.ToString();
                if (configuration.DedicatedPool)
                {
                    key += Guid.NewGuid();
                }

                if (!_connectionPools.TryGetValue(key, out pool))
                {
                    var host           = configuration.Host;
                    var port           = configuration.Port;
                    var maxConnections = configuration.MaxConnections;
                    pool = new ConnectionPool(() => new RemoteConnection(host, port), maxConnections, host, port);
                    _connectionPools[key] = pool;
                }
                return(pool);
            }
        }