Ver. 1.00
2006/07/16
Windowsの同期オブジェクトのラッパークラスです。同期オブジェクトを簡単に扱えることを目標に作成しています。
現在、MutexとEventと、それらの基底クラスの3つしかありません。
基底クラスですので、継承していません。
メンバ名 | 型 | 説明 |
---|---|---|
Handle | HANDLE | 同期オブジェクトに割り当てられたハンドル。値を変更しないでください。 |
Name | AnsiString | 同期オブジェクトの名称。255バイト以内。 |
TimeOut | long | シグナル待ちのタイムアウトインターバル。単位はmsec。 値SYNCHOBJ_WAITINFINITEを指定すると、無限に待つ。 値0を指定すると、現在の状態を調べてるだけで待たない。 |
宣言 | 説明 | 戻り値 |
---|---|---|
TSynchObject(); | デフォルトコンストラクタ。 | 生成されたインスタンスへのポインタ。 |
bool WaitSignal(void); | TimeOutメンバに指定された時間、シグナルを待つ。 | シグナルが発生した場合true。 発生しなかった場合false。 |
bool WaitSignal(long timeOut); | 引数timeOutで指定された時間、シグナルを待つ。 TimeOutメンバには引数timeOutの値が代入される。 |
シグナルが発生した場合true。 発生しなかった場合false。 |
bool CheckSignal(void); | タイムアウト待ちをせず、現在の状態を調べてすぐに結果を返す。 | シグナルが発生していればtrue。 発生していなければfalse。 |
TSynchObject - TMutexObject
TSynchObjectから継承したもののみ。
TSynchObjectから継承したメソッドのほかに、以下のメソッドがあります。
宣言 | 説明 | 戻り値 |
---|---|---|
TMutexObject(); | デフォルトコンストラクタ。 | 生成されたインスタンスへのポインタ。 |
~TMutexObject(); | デストラクタ。 | なし。 |
bool Get(void); | Nameメンバで指定されたMutexオブジェクトの取得を試みる。 | 取得に成功した場合true。 失敗した場合false。 |
bool Get(AnsiString name, long timeOut); | 引数timeOutで指定された時間内で、引数nameで指定されたMutexオブジェクトの取得を試みる。 Nameメンバには引数nameの値が、TimeOutメンバには引数timeOutの値が代入される。 |
取得に成功した場合true。 失敗した場合false。 |
void Release(void); | Mutexオブジェクトを破棄する。 Windowsのハンドルも解放する。 |
なし。 |
TSynchObject - TEventObject
TSynchObjectから継承したもののほかに、以下のメンバがあります。
メンバ名 | 型 | 説明 |
---|---|---|
InitSignal | bool | Eventオブジェクト生成直後のシグナルの状態。 trueの場合はシグナル発生、falseの場合はシグナルなし。 |
TSynchObjectから継承したもののほかに、以下のメソッドがあります。
宣言 | 説明 | 戻り値 |
---|---|---|
TEventObject(); | デフォルトコンストラクタ。 | 生成されたインスタンスへのポインタ。 |
~TEventObject(); | デストラクタ。 | なし。 |
bool Create(void); | Nameメンバで指定されたEventオブジェクトを生成し、InitSignalメンバで指定された初期状態に設定する。 すでにEventオブジェクトが生成されていればOpenメソッドと同じ。 |
生成に成功した場合true。 失敗した場合false。 |
bool Create(bool initSignal, AnsiString name); | 引数nameで指定されたEventオブジェクトを生成し、引数initSignalで指定された初期状態に設定する。 InitSignalメンバには引数initSignalの値が、Nameメンバには引数nameの値が代入される。 すでにEventオブジェクトが生成されていればOpenメソッドと同じで、引数initSignalは無視される。 |
生成に成功した場合true。 失敗した場合false。 |
bool Open(void); | Nameメンバで指定されたEventオブジェクトをオープンする。 すでにEventオブジェクトが生成されている必要がある。 |
オープンに成功した場合true。 失敗した場合false。 |
bool Open(AnsiString name); | 引数nameで指定されたEventオブジェクトをオープンする。 Nameメンバには引数nameの値が代入される。 すでにEventオブジェクトが生成されている必要がある。 |
オープンに成功した場合true。 失敗した場合falseを返す。 |
void Close(void); | Eventオブジェクトを破棄する。 Windowsのハンドルも解放する。 |
なし。 |
void SetEvent(void); | シグナルを発生する。 | なし。 |
void ResetEvent(void); | シグナルが発生していない状態にする。 | なし。 |
void PulseEvent(void); | シグナルを待っているスレッドがいれば、シグナルを1回だけ発生する。 シグナルを待っているスレッドがいなければ、シグナルが発生していない状態にする。 |
なし。 |