クラス テンプレート langedge::RecycledInstancePool< T, Alloc >

インスタンス領域の再利用を図るプール. [詳細]

#include <memutil.hpp>

langedge::RecycledInstancePool< T, Alloc >のコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public メソッド

 RecycledInstancePool ()
 ~RecycledInstancePool ()
T * getInstance ()
 インスタンスを得る.
T * cloneInstance (const T &obj)
 クローンインスタンスを得る.
void putbackInstance (T *pObj)
 インスタンスを返す.

説明

template<class T, class Alloc>
class langedge::RecycledInstancePool< T, Alloc >

インスタンス領域の再利用を図るプール.

リンクトリストによって不要になったインスタンスを管理し、再利用する。 NewByBlockAllocator の派生クラスのインスタンスを管理することを 念頭においている。

引数:
T 管理されるインスタンスのクラス。T は、デフォルトコンストラクタ、 コピーコンストラクタ、代入オペレータ、Alloc型オブジェクト を引数とする placement new、および void initialize() (デフォルト コンストラクタが行う初期化) を持つ必要がある。
さらに、public なメンバ関数として、リンクポインタを繰作する setNext()/getNext() を持つ必要がある。これは、次に定義する LinkPtrBase テンプレートクラスを使って実装すればよい。
Alloc インスタンスのアロケータの型。このオブジェクトは、 自身がデストラクトされる時にそれまで保持していたメモリ領域を 解放する必要がある。


コンストラクタとデストラクタ

template<class T, class Alloc>
langedge::RecycledInstancePool< T, Alloc >::RecycledInstancePool  )  [inline]
 

template<class T, class Alloc>
langedge::RecycledInstancePool< T, Alloc >::~RecycledInstancePool  )  [inline]
 


関数

template<class T, class Alloc>
T* langedge::RecycledInstancePool< T, Alloc >::getInstance  )  [inline]
 

インスタンスを得る.

フリーリストが空なら、 T のデフォルトコンストラクタを使用して新しいインスタンスを生成する

template<class T, class Alloc>
T* langedge::RecycledInstancePool< T, Alloc >::cloneInstance const T &  obj  )  [inline]
 

クローンインスタンスを得る.

フリーリストが空なら、 T のコピーコンストラクタを使用して新しいインスタンスを生成する

template<class T, class Alloc>
void langedge::RecycledInstancePool< T, Alloc >::putbackInstance T *  pObj  )  [inline]
 

インスタンスを返す.


このクラスの説明は次のファイルから生成されました:
LangEdge ライブラリに対してFri May 6 22:43:03 2005に生成されました。  doxygen 1.4.2