| ObjectPool.java |
/* JFox, the OpenSource J2EE Application Server
*
* Copyright (C) 2002 huihoo.org
* Distributable under GNU LGPL license
* See the GNU Lesser General Public License for more details.
*/
package org.huihoo.jfox.pool;
/**
* the method a object pool needed
* @author <a href="mailto:young_yy@hotmail.com">Young Yang</a>
*/
public interface ObjectPool {
/**
* retrieve Object from object pool
* @return
*/
PoolableObject retrieveObject() throws Exception ;
/**
* restore the retrived object to object pool
* @return true if success, false if failed
*/
boolean restoreObject(PoolableObject obj);
/**
* remove a poolable object from the pool
* @param obj
* @return
*/
boolean removeObject(PoolableObject obj);
/**
* Clears any objects sitting idle in the pool, releasing any associated resources
*/
void clear();
/**
* get the factory use to create new instances
*/
ObjectFactory getObjectFactory();
/**
* get the pooled object's class type, it return by object pool's factory
* @return
*/
String getObjectClass();
/**
* get the count of working object
* @return
*/
int getWorking();
/**
* get the count of rest object
* @return
*/
int getRest();
/**
* 初始化池中对象的数目
* @return
*/
int getInitNum();
/**
* 池中对象最大的空闲数,超过这个空闲数之后,返回池的对象将不在池中保存
* @return
*/
int getMaxRest();
}