mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

matthew_swift
28.47.2010 f2160f4bd1c8ac67e5a86a6710d431e8932877f9
sdk/src/org/opends/sdk/ConnectionFactory.java
@@ -27,11 +27,13 @@
package org.opends.sdk;
/**
 * A connection factory provides an interface for obtaining a connection
 * to a Directory Server. Connection factories can be used to wrap other
 * connection factories in order to provide enhanced capabilities in a
 * manner which is transparent to the application. For example:
 * A connection factory provides an interface for obtaining a connection to a
 * Directory Server. Connection factories can be used to wrap other connection
 * factories in order to provide enhanced capabilities in a manner which is
 * transparent to the application. For example:
 * <ul>
 * <li>Connection pooling
 * <li>Load balancing
@@ -44,42 +46,41 @@
 * <li>Pre-authenticated connections
 * <li>Recording connections, with primitive roll-back functionality
 * </ul>
 * An application typically obtains a connection from a connection
 * factory, performs one or more operations, and then closes the
 * connection. Applications should aim to close connections as soon as
 * possible in order to avoid resource contention.
 *
 * An application typically obtains a connection from a connection factory,
 * performs one or more operations, and then closes the connection. Applications
 * should aim to close connections as soon as possible in order to avoid
 * resource contention.
 */
public interface ConnectionFactory
{
  /**
   * Initiates an asynchronous connection request to the Directory Server
   * associated with this connection factory. The returned {@code FutureResult}
   * can be used to retrieve the completed asynchronous connection.
   * Alternatively, if a {@code ResultHandler} is provided, the handler will be
   * notified when the connection is available and ready for use.
   *
   * @param handler
   *          The completion handler, or {@code null} if no handler is to be
   *          used.
   * @return A future which can be used to retrieve the asynchronous connection.
   */
  FutureResult<AsynchronousConnection> getAsynchronousConnection(
      ResultHandler<AsynchronousConnection> handler);
  /**
   * Returns a connection to the Directory Server associated with this
   * connection factory. The connection returned by this method can be
   * used immediately.
   * connection factory. The connection returned by this method can be used
   * immediately.
   *
   * @return A connection to the Directory Server associated with this
   *         connection factory.
   * @throws ErrorResultException
   *           If the connection request failed for some reason.
   * @throws InterruptedException
   *           If the current thread was interrupted while waiting.
   */
  Connection getConnection() throws ErrorResultException;
  /**
   * Initiates an asynchronous connection request to the Directory
   * Server associated with this connection factory. The returned
   * {@code FutureResult} can be used to retrieve the completed
   * asynchronous connection. Alternatively, if a {@code ResultHandler}
   * is provided, the handler will be notified when the connection is
   * available and ready for use.
   *
   * @param handler
   *          The completion handler, or {@code null} if no handler is
   *          to be used.
   * @return A future which can be used to retrieve the asynchronous
   *         connection.
   */
  FutureResult<AsynchronousConnection> getAsynchronousConnection(
      ResultHandler<AsynchronousConnection> handler);
  Connection getConnection() throws ErrorResultException, InterruptedException;
}