package org.opends.sdk; import com.sun.opends.sdk.util.Validator; import com.sun.opends.sdk.util.AbstractFutureResult; import org.opends.sdk.responses.Responses; /** * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time: 3:23:52 * PM To change this template use File | Settings | File Templates. */ public class LoadBalancingConnectionFactory extends AbstractConnectionFactory { private final LoadBalancingAlgorithm algorithm; public LoadBalancingConnectionFactory(LoadBalancingAlgorithm algorithm) { Validator.ensureNotNull(algorithm); this.algorithm = algorithm; } public FutureResult getAsynchronousConnection( ResultHandler resultHandler) { ConnectionFactory factory = algorithm.getNextConnectionFactory(); if(factory == null) { AbstractFutureResult future = new AbstractFutureResult(resultHandler) { public int getRequestID() { return -1; } }; future.handleErrorResult(new ErrorResultException( Responses.newResult(ResultCode.CLIENT_SIDE_CONNECT_ERROR). setDiagnosticMessage("No connection factories available"))); return future; } return factory.getAsynchronousConnection(resultHandler); } }