/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.core.cachepool.container; import java.util.List; import com.jinhe.tss.core.cachepool.Cacheable; import com.jinhe.tss.core.cachepool.CacheableKey; import com.jinhe.tss.core.cachepool.IArithmetic; /** * <p> Collection.java </p> * * 缓存池的池容器接口.</p><p> * 该接口中定义了池的基本操作.</p><p> * 用户可以通过实现该接口来自定义池容器的实现.</p><p> * * @author Jon.King 2006-12-31 */ public interface IPoolContainer { //对象池容器访问方式 /** 先进先出 */ static final int ACCESS_FIFO = 1; /** 后进先出 */ static final int ACCESS_LIFO = 2; /** 随机 */ static final int ACCESS_RANDOM = 3; /** 最近使用 */ static final int ACCESS_LRU = 4; /** 最不常使用 */ static final int ACCESS_LFU = 5; /** * 从池容器里获取一个对象 * @param key * @return */ Cacheable get(Object key); /** * 根据缓存池中缓存策略设定的对象访问方式(共有以上所列5种)来获取缓存池中的一个对象。</p><p> * 本方法主要在缓存算法类中执行check-out()和remove()方法时候会被调用到。</p><p> * * @param accessMethod * @return * @see IArithmetic */ Cacheable getByAccessMethod(int accessMethod); /** * 往池容器中存入一个对象 * @param key * @param value * @return */ Cacheable put(Object key, Cacheable value); /** * 从池容器中清除一个对象 * @param key * @return */ Cacheable remove(Object key); Cacheable removeByAccessMethod(int accessMethod); /** * 获取池容器中的所有key列表 * @return */ List<CacheableKey> getKeys(); List<Cacheable> getValues(); /** * 获取池中元素的个数 * @return */ int size(); /** * 清空池容器 */ void clear(); }