internal ConnectionPoolSettings(int maxIdleConnectionPoolSize, int maxConnectionPoolSize,
                                 TimeSpan connectionAcquisitionTimeout, TimeSpan connectionIdleTimeout, TimeSpan maxConnectionLifetime,
                                 IInternalMetrics metrics = null)
 {
     MaxIdleConnectionPoolSize    = maxIdleConnectionPoolSize;
     MaxConnectionPoolSize        = maxConnectionPoolSize;
     ConnectionAcquisitionTimeout = connectionAcquisitionTimeout;
     ConnectionIdleTimeout        = connectionIdleTimeout;
     MaxConnectionLifetime        = maxConnectionLifetime;
     Metrics = metrics;
 }
        protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            if (disposing)
            {
                _pool = null;
                _metrics.RemovePoolMetrics(Id);
                _metrics = null;
            }


            //Mark as disposed
            _disposed = true;
        }
 public ConnectionPoolMetrics(string poolId, IConnectionPool pool, IInternalMetrics metrics)
 {
     Id       = poolId;
     _pool    = pool;
     _metrics = metrics;
 }
 public void Dispose()
 {
     _pool = null;
     _metrics.RemovePoolMetrics(Id);
     _metrics = null;
 }
 public ConnectionPoolSettings(Config config, IInternalMetrics metrics = null)
     : this(config.MaxIdleConnectionPoolSize, config.MaxConnectionPoolSize, config.ConnectionAcquisitionTimeout,
            config.ConnectionIdleTimeout, config.MaxConnectionLifetime, metrics)
 {
 }