edu.vt.middleware.ldap.pool.LdapPool Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vt-ldap Show documentation
Show all versions of vt-ldap Show documentation
Library for performing common LDAP operations
/*
$Id: LdapPool.java 1330 2010-05-23 22:10:53Z dfisher $
Copyright (C) 2003-2010 Virginia Tech.
All rights reserved.
SEE LICENSE FOR MORE INFORMATION
Author: Middleware Services
Email: [email protected]
Version: $Revision: 1330 $
Updated: $Date: 2010-05-23 18:10:53 -0400 (Sun, 23 May 2010) $
*/
package edu.vt.middleware.ldap.pool;
import java.util.Timer;
import edu.vt.middleware.ldap.BaseLdap;
/**
* LdapPool
provides an interface for pooling ldap objects.
*
* @param type of ldap object
*
* @author Middleware Services
* @version $Revision: 1330 $ $Date: 2010-05-23 18:10:53 -0400 (Sun, 23 May 2010) $
*/
public interface LdapPool
{
/**
* Returns the configuration for this pool.
*
* @return ldap pool config
*/
LdapPoolConfig getLdapPoolConfig();
/**
* Sets the pool to use an existing timer. Pool will use an internal timer if
* none is provided. Must be called before {@link #initialize()}.
*
* @param t timer used to schedule pool tasks
*/
void setPoolTimer(Timer t);
/** Initialize this pool for use. */
void initialize();
/** Empty this pool, closing all connections, and freeing any resources. */
void close();
/**
* Returns an ldap object from the pool.
*
* @return ldap object
*
* @throws LdapPoolException if this operation fails
* @throws BlockingTimeoutException if this pool is configured with a block
* time and it occurs
* @throws PoolInterruptedException if this pool is configured with a block
* time and the current thread is interrupted
*/
T checkOut()
throws LdapPoolException;
/**
* Returns an ldap object to the pool.
*
* @param t ldap object
*/
void checkIn(final T t);
/**
* Attempts to reduce the size of the pool back to it's configured minimum.
* {@link LdapPoolConfig#setMinPoolSize(int)}.
*/
void prune();
/**
* Attempts to validate all objects in the pool. {@link
* LdapPoolConfig#setValidatePeriodically(boolean)}.
*/
void validate();
/**
* Returns the number of ldap objects available for use.
*
* @return count
*/
int availableCount();
/**
* Returns the number of ldap objects in use.
*
* @return count
*/
int activeCount();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy