| | |
| | | |
| | | 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 |
| | |
| | | * <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; |
| | | } |