jp.livewell.baby.pool
クラス AbstractPool

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

public abstract class AbstractPool
extends java.lang.Object
implements Pool

プールの基本的な部分を実装したAbstract classです。

作成者:
mitsuhito

コンストラクタの概要
AbstractPool(PoolInfo info, Factory factory)
          AbstractPoolをプール構築の設定情報(PoolInfo)とFactoryから構築します。
AbstractPool(PoolInfo info, Factory factory, ComparisonKey key)
          AbstractPoolをプール構築の設定情報(PoolInfo)とFactoryから構築します。
 
メソッドの概要
protected abstract  boolean addNewInstance(Wrapper wpr)
          新しく生成されたWrapperをPoolのinstanceとして登録します。
protected abstract  void addPooledInstance(Wrapper wrp)
          このPoolから取得されたWrapper instanceをPoolへ戻すための手続きを記述 します。
protected  ComparisonKey getComparisonKey()
          このPoolの確認用Keyを取得します。
 Factory getFactory()
          このプールに格納されているinstanceを生成しているFactoryを取得します。
 float getGrowPoint()
          プール内のインスタンス数が増加し始めるプールの使用率を取得します。
 int getIdleCheckInterval()
          プール内のインスタンス数を調整するアイドル時の時間間隔(ms)を取得します。
 int getMaxSize()
          プール内部に保持できるインスタンスの最大サイズを取得します。
 int getMinCheckInterval()
          プール内のインスタンス数を調整する最短の時間間隔(ms)を取得します。
 int getMinSize()
          プール内部に保持しておくインスタンスの最小サイズを取得します。
 java.lang.String getName()
          プールの名前を取得します。
 PoolReference getPoolReference()
          このPoolへの参照を取得します。
 float getShrinkPoint()
          プール内のインスタンス数が減少し始めるプールの使用率を取得します。
 int getTimeout()
          プールのタイムアウト時間(取得までの最大待機時間)を取得します。
 boolean grow()
          プールするinstanceを1つ増やします。
 void restore(Wrapper wrp)
          取得したinstanceを1つ、プールへ戻します。
protected  void setGrowPoint(float grow)
          プール内のインスタンス数が増加し始めるプールの使用率を設定します。
protected  void setIdleCheckInterval(int idleInterval)
          プール内のインスタンス数を調整するアイドル時の時間間隔(ms)を設定します。
protected  void setMaxSize(int max)
          プール内部に保持できるインスタンスの最大サイズを設定します。
protected  void setMinCheckInterval(int minInterval)
          プール内のインスタンス数を調整する最短の時間間隔(ms)を設定します。
protected  void setMinSize(int min)
          プール内部に保持しておくインスタンスの最小サイズを設定します。
protected  void setShrinkPoint(float shrink)
          プール内のインスタンス数が減少し始めるプールの使用率を設定します。
protected  void setTimeout(int timeout)
          プールのタイムアウト時間(取得までの最大待機時間)を設定します。
 boolean shrink()
          プールするinstanceを1つ減らします。
 Wrapper takeout()
          プールされているinstanceを1つ取り出します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース jp.livewell.baby.pool.Pool から継承したメソッド
dispose, getRemovedSize, getStoredSize, getTotalSize, getWaitSize, takeout
 

コンストラクタの詳細

AbstractPool

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

AbstractPool

public AbstractPool(PoolInfo info,
                    Factory factory,
                    ComparisonKey key)
AbstractPoolをプール構築の設定情報(PoolInfo)とFactoryから構築します。
パラメータ:
info - プール構築の設定情報
factory - プールされるインスタンスを生成するFactory
key - このPool固有の確認用key object
メソッドの詳細

getName

public java.lang.String getName()
プールの名前を取得します。
定義:
インタフェース Pool 内の getName
戻り値:
このプールの名前。

getTimeout

public int getTimeout()
プールのタイムアウト時間(取得までの最大待機時間)を取得します。
定義:
インタフェース Pool 内の getTimeout
戻り値:
タイムアウト時間(取得までの最大待機時間)

setTimeout

protected void setTimeout(int timeout)
                   throws java.lang.IllegalArgumentException
プールのタイムアウト時間(取得までの最大待機時間)を設定します。
パラメータ:
timeout - プールのタイムアウト時間
例外:
java.lang.IllegalArgumentException - 不正な値(PoolInfoに設定出来ない値)を設定しようとした場合。

getMaxSize

public int getMaxSize()
プール内部に保持できるインスタンスの最大サイズを取得します。
定義:
インタフェース Pool 内の getMaxSize
戻り値:
プール内部に保持できるインスタンスの最大サイズ。

setMaxSize

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

getMinSize

public int getMinSize()
プール内部に保持しておくインスタンスの最小サイズを取得します。
定義:
インタフェース Pool 内の getMinSize
戻り値:
プール内部に保持しておくインスタンスの最小サイズ

setMinSize

protected void setMinSize(int min)
                   throws java.lang.IllegalArgumentException
プール内部に保持しておくインスタンスの最小サイズを設定します。
パラメータ:
min - プール内部に保持しておくインスタンスの最小サイズ
例外:
java.lang.IllegalArgumentException - 不正な値(PoolInfoに設定出来ない値)を設定しようとした場合。

getGrowPoint

public float getGrowPoint()
プール内のインスタンス数が増加し始めるプールの使用率を取得します。
定義:
インタフェース Pool 内の getGrowPoint
戻り値:
インスタンス数が増加し始めるプールの使用率

setGrowPoint

protected void setGrowPoint(float grow)
                     throws java.lang.IllegalArgumentException
プール内のインスタンス数が増加し始めるプールの使用率を設定します。
パラメータ:
grow - プール内のインスタンス数が増加し始めるプールの使用率
例外:
java.lang.IllegalArgumentException - 不正な値(PoolInfoに設定出来ない値)を設定しようとした場合。

getShrinkPoint

public float getShrinkPoint()
プール内のインスタンス数が減少し始めるプールの使用率を取得します。
定義:
インタフェース Pool 内の getShrinkPoint
戻り値:
インスタンス数が減少し始めるプールの使用率

setShrinkPoint

protected void setShrinkPoint(float shrink)
                       throws java.lang.IllegalArgumentException
プール内のインスタンス数が減少し始めるプールの使用率を設定します。
パラメータ:
shrink - プール内のインスタンス数が減少し始めるプールの使用率
例外:
java.lang.IllegalArgumentException - 不正な値(PoolInfoに設定出来ない値)を設定しようとした場合。

getMinCheckInterval

public int getMinCheckInterval()
プール内のインスタンス数を調整する最短の時間間隔(ms)を取得します。
定義:
インタフェース Pool 内の getMinCheckInterval
戻り値:
プール内のインスタンス数を調整する最短の時間間隔(ms)

setMinCheckInterval

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

getIdleCheckInterval

public int getIdleCheckInterval()
プール内のインスタンス数を調整するアイドル時の時間間隔(ms)を取得します。
定義:
インタフェース Pool 内の getIdleCheckInterval
戻り値:
プール内のインスタンス数を調整するアイドル時の時間間隔(ms)

setIdleCheckInterval

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

getFactory

public Factory getFactory()
このプールに格納されているinstanceを生成しているFactoryを取得します。
定義:
インタフェース Pool 内の getFactory
戻り値:
Factoryのインスタンス

getPoolReference

public PoolReference getPoolReference()
このPoolへの参照を取得します。
定義:
インタフェース Pool 内の getPoolReference
戻り値:
このPoolへの参照

getComparisonKey

protected ComparisonKey getComparisonKey()
このPoolの確認用Keyを取得します。
戻り値:
このPoolの確認用Key

takeout

public Wrapper takeout()
                throws TimeoutException
プールされているinstanceを1つ取り出します。instanceが存在しない場合は getTimeoutで示される時間(ms)threadがブロックされ、その後 TimeoutExceptionをthrowして復帰します。timeoutに0を指定している場合 は取得できるまで戻って来ません。負の値を指定している場合は取得できな ければ即座にnullを返します。
定義:
インタフェース Pool 内の takeout
戻り値:
プールされていたWrapper object。またはnull。
例外:
TimeoutException - instanceを取得出来なかった場合。

restore

public void restore(Wrapper wrp)
             throws java.lang.IllegalArgumentException
取得したinstanceを1つ、プールへ戻します。もし、このプールから取得 したinstanceでは無い場合、IllegalArgumentExceptionがthrowされます。
定義:
インタフェース Pool 内の restore
パラメータ:
wrp - このPoolから取り出されたWrapperのinstance
例外:
java.lang.IllegalArgumentException - このプールから取得したinstance以外を戻そうとした場合

addPooledInstance

protected abstract void addPooledInstance(Wrapper wrp)
このPoolから取得されたWrapper instanceをPoolへ戻すための手続きを記述 します。このメソッドに与えられるWrapperはこのPoolから取得され、 passivateされていることが保証されます。
パラメータ:
wrp - このPoolから取得され、passivateされていることが保証された Wrapper instance

grow

public boolean grow()
プールするinstanceを1つ増やします。maxSizeより多くは増やしません。 増加に成功するとtrueを戻します。
定義:
インタフェース Pool 内の grow
戻り値:
増加に成功した場合true

addNewInstance

protected abstract boolean addNewInstance(Wrapper wpr)
新しく生成されたWrapperをPoolのinstanceとして登録します。 登録に成功した場合はtrueを返し、totalを+1しなければなりません。
パラメータ:
wrp - 新しく生成されたWrapper instance
戻り値:
登録に成功した場合はtrue

shrink

public boolean shrink()
プールするinstanceを1つ減らします。minSize未満には減らしません。 減少に成功するとtrueを戻します。
定義:
インタフェース Pool 内の shrink
戻り値:
減少に成功した場合はtrue