// Token: 0x06000DB9 RID: 3513 RVA: 0x0003E864 File Offset: 0x0003CA64
 internal LdapConnectionPool(ConnectionPoolType type, ADServerInfo[] servers, NetworkCredential credential)
 {
     this.type            = type;
     this.poolLock        = new ReaderWriterLock();
     this.isActive        = true;
     this.serverInfos     = servers;
     this.credential      = credential;
     this.connectionInfos = new ConnectionInfo[servers.Length];
     for (int i = 0; i < servers.Length; i++)
     {
         this.connectionInfos[i] = new ConnectionInfo(servers[i]);
     }
     ExTraceGlobals.GetConnectionTracer.TraceDebug <int, int>((long)this.GetHashCode(), "Creating LdapConnectionPool {0} with {1} servers", (int)type, this.connectionInfos.Length);
 }
        public static IConnectionPool Create(ConnectionPoolType poolType)
        {
            IConnectionPool connectionPool = null;
            switch (poolType)
            {
                case ConnectionPoolType.NOPOOL:
                    connectionPool = new NoConnectionPool();
                    break;
                case ConnectionPoolType.SIZECONTROLLEDPOOL:
                    connectionPool = new SizeControlledConnectionPool();
                    break;
                default:
                    throw new AquilesException(String.Format(CultureInfo.CurrentCulture, "No implementation found for '{0}'", poolType));
            }

            return connectionPool;
        }
        // Token: 0x06000DB6 RID: 3510 RVA: 0x0003E7F8 File Offset: 0x0003C9F8
        internal static ADServerRole RoleFromConnectionPoolType(ConnectionPoolType type)
        {
            switch (type)
            {
            case ConnectionPoolType.DCPool:
            case ConnectionPoolType.UserDCPool:
                return(ADServerRole.DomainController);

            case ConnectionPoolType.GCPool:
            case ConnectionPoolType.UserGCPool:
                return(ADServerRole.GlobalCatalog);

            case ConnectionPoolType.ConfigDCPool:
            case ConnectionPoolType.ConfigDCNotifyPool:
                return(ADServerRole.ConfigurationDomainController);

            default:
                throw new ArgumentException(DirectoryStrings.ExArgumentException("type", type.ToString()), "type");
            }
        }