jp.livewell.baby.pool
クラス DefaultPool

java.lang.Object
  |
  +--jp.livewell.baby.pool.AbstractPool
        |
        +--jp.livewell.baby.pool.DefaultPool
すべての実装インタフェース:
Pool
直系の既知のサブクラス:
ConnectionPool

public class DefaultPool
extends AbstractPool

プールの標準の実装をしたclassです。

作成者:
mitsuhito

コンストラクタの概要
DefaultPool(PoolInfo info, Factory factory)
          DefaultPoolをプール構築の設定情報(PoolInfo)とFactoryから構築します。
 
メソッドの概要
protected  boolean addNewInstance(Wrapper wrp)
          新しく生成されたWrapperをPoolのinstanceとして登録します。
protected  void addPooledInstance(Wrapper wrp)
          このPoolから取得されたWrapper instanceをPoolへ戻すための手続きを記述 します。
 void dispose(Wrapper wrp)
          取得したインスタンスを1つ破棄します。
 int getRemovedSize()
          現在外部に取り出されているインスタンスの数を取得します。
 int getStoredSize()
          現在プール内に保持しているインスタンスの数を返します。
 int getTotalSize()
          現在保持、又は外部に取り出されているインスタンスの合計を取得します。
 int getWaitSize()
          現在インスタンスを取得待ちしているthreadの数を取得します。
protected  void setIdleCheckInterval(int idleInterval)
          プール内のインスタンス数を調整するアイドル時の時間間隔(ms)を設定します。
protected  void setMaxSize(int max)
          プール内部に保持できるインスタンスの最大サイズを設定します。
protected  void setMinCheckInterval(int minInterval)
          プール内のインスタンス数を調整する最短の時間間隔(ms)を設定します。
 Wrapper takeout(int maxTime)
          プールに格納されているインスタンスを1つ取り出します。
 
クラス jp.livewell.baby.pool.AbstractPool から継承したメソッド
getComparisonKey, getFactory, getGrowPoint, getIdleCheckInterval, getMaxSize, getMinCheckInterval, getMinSize, getName, getPoolReference, getShrinkPoint, getTimeout, grow, restore, setGrowPoint, setMinSize, setShrinkPoint, setTimeout, shrink, takeout
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

DefaultPool

public DefaultPool(PoolInfo info,
                   Factory factory)
DefaultPoolをプール構築の設定情報(PoolInfo)とFactoryから構築します。
パラメータ:
info - プール構築の設定情報
factory - プールされるインスタンスを生成するFactory
メソッドの詳細

setMaxSize

protected void setMaxSize(int max)
                   throws java.lang.IllegalArgumentException
プール内部に保持できるインスタンスの最大サイズを設定します。
オーバーライド:
クラス AbstractPool 内の setMaxSize
パラメータ:
max - プール内部に保持できるインスタンスの最大サイズ
例外:
java.lang.IllegalArgumentException - 不正な値(PoolInfoに設定出来ない値)を設定しようとした場合。

setMinCheckInterval

protected void setMinCheckInterval(int minInterval)
                            throws java.lang.IllegalArgumentException
プール内のインスタンス数を調整する最短の時間間隔(ms)を設定します。
オーバーライド:
クラス AbstractPool 内の setMinCheckInterval
パラメータ:
minInterval - プール内のインスタンス数を調整する最短の時間間隔(ms)
例外:
java.lang.IllegalArgumentException - 不正な値(PoolInfoに設定出来ない値)を設定しようとした場合。

setIdleCheckInterval

protected void setIdleCheckInterval(int idleInterval)
                             throws java.lang.IllegalArgumentException
プール内のインスタンス数を調整するアイドル時の時間間隔(ms)を設定します。
オーバーライド:
クラス AbstractPool 内の setIdleCheckInterval
パラメータ:
idleInterval - プール内のインスタンス数を調整するアイドル時の時間間隔(ms)
例外:
java.lang.IllegalArgumentException - 不正な値(PoolInfoに設定出来ない値)を設定しようとした場合。

getRemovedSize

public int getRemovedSize()
現在外部に取り出されているインスタンスの数を取得します。
戻り値:
現在外部に取り出されているインスタンスの数

getStoredSize

public int getStoredSize()
現在プール内に保持しているインスタンスの数を返します。
戻り値:
現在プール内に保持しているインスタンスの数

getTotalSize

public int getTotalSize()
現在保持、又は外部に取り出されているインスタンスの合計を取得します。
戻り値:
現在保持、又は外部に取り出されているインスタンスの合計

getWaitSize

public int getWaitSize()
現在インスタンスを取得待ちしているthreadの数を取得します。
戻り値:
現在インスタンスを取得待ちしているthreadの数

takeout

public Wrapper takeout(int maxTime)
                throws TimeoutException
プールに格納されているインスタンスを1つ取り出します。 インスタンスが存在しない場合はgetTimeoutで示される時間(ms)threadがブ ロックされ、その後TimeoutExceptionをthrowして復帰します。timeoutに0を 指定している場合は取得できるまで戻って来ません。
パラメータ:
maxTime - インスタンス取得の最大待ち時間。0を指定すると取得できるまで 待ち、負の値を指定すると取得できなければnullを戻します。
戻り値:
格納されていたインスタンスを保持するWrapper object
例外:
TimeoutException - インスタンスを取得出来なかった場合。

addPooledInstance

protected void addPooledInstance(Wrapper wrp)
クラス AbstractPool の記述:
このPoolから取得されたWrapper instanceをPoolへ戻すための手続きを記述 します。このメソッドに与えられるWrapperはこのPoolから取得され、 passivateされていることが保証されます。
オーバーライド:
クラス AbstractPool 内の addPooledInstance
クラス jp.livewell.baby.pool.AbstractPool からコピーされたタグ:
パラメータ:
wrp - このPoolから取得され、passivateされていることが保証された Wrapper instance

addNewInstance

protected boolean addNewInstance(Wrapper wrp)
クラス AbstractPool の記述:
新しく生成されたWrapperをPoolのinstanceとして登録します。 登録に成功した場合はtrueを返し、totalを+1しなければなりません。
オーバーライド:
クラス AbstractPool 内の addNewInstance
クラス jp.livewell.baby.pool.AbstractPool からコピーされたタグ:
パラメータ:
wrp - 新しく生成されたWrapper instance
戻り値:
登録に成功した場合はtrue

dispose

public void dispose(Wrapper wrp)
             throws java.lang.IllegalArgumentException
取得したインスタンスを1つ破棄します。このプールから取得したインスタ ンスではない場合、IllegalArgumentExceptionがthrowされます。
パラメータ:
wrp - 破棄するWrapper
例外:
java.lang.IllegalArgumentException - このプールから取得したインスタンス以外を破棄しようとした場合