SynchObjectのマニュアル

Ver. 1.00
2006/07/16

概要

Windowsの同期オブジェクトのラッパークラスです。同期オブジェクトを簡単に扱えることを目標に作成しています。
現在、MutexとEventと、それらの基底クラスの3つしかありません。


TSynchObject

継承

基底クラスですので、継承していません。

メンバ

メンバ名 説明
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。

注意事項


TMutexObject

継承

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のハンドルも解放する。
なし。

注意事項


TEventObject

継承

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回だけ発生する。
シグナルを待っているスレッドがいなければ、シグナルが発生していない状態にする。
なし。

注意事項