template<class HBODY>
class nn::nlib::HandleMaker< HBODY >
32bit整数値を持つハンドルの実装を支援するクラスです。
- テンプレート引数
-
- 説明
- 32bit整数値(以降ハンドル)とオブジェクト(以降ハンドルの実体)との関連付けを行う仕組みを提供するクラスです。
HandleMaker
を利用すると以下のような特徴を持つハンドルを簡単に提供することが可能になります。
- ハンドルを通したハンドルの実体へのアクセスはスレッドセーフになります。
- ハンドルをクローズした後にそのハンドル(つまり無効なハンドル)を利用した場合でも、クラッシュせずにエラー(一般には
EBADF
)を返すことができます。
- 上記は異なるスレッドからクローズされた場合も同様です。
- ハンドルとなる整数値はすぐには再利用されないので、意図しないハンドルの実体へのアクセスを避けることができます。
- -1, 0, 1, 2, 3はハンドルの値として割り当てられることはありません。
- 各種例:
- misc/handlemaker/handlemaker.cpp.
HandleMaker.h の 93 行目に定義があります。