TNB Library
クラス | 公開メンバ関数 | 全メンバ一覧
CCyclicBarrier クラス

バリアクラス [詳解]

#include <TnbCyclicBarrier.h>

+ CCyclicBarrier の継承関係図

クラス

struct  IListener
 バリアクラスのリスナーインターフェース [詳解]
 

公開メンバ関数

 CCyclicBarrier (int iParties=2, IListener *I=NULL)
 コンストラクタ [詳解]
 
int GetNumberWaiting (void)
 [取得] 待機数 [詳解]
 
int GetParties (void)
 [取得] パーティ数 [詳解]
 
bool Init (int iParties=2, IListener *I=NULL)
 [設定] 初期化 [詳解]
 
void Reset (void)
 [操作] リセット [詳解]
 
int Wait (void)
 [排他] ウェイト [詳解]
 
 ~CCyclicBarrier (void)
 デストラクタ [詳解]
 

詳解

バリアクラス

指定の数(パーティ数)が Wait に入るまでバリアする(進行を阻む)クラスです。
覚え書き
パーティ数が2ならば、 CExchanger を使用したほうが、軽量です。
必要ファイル
TnbCyclicBarrier.h
日付
06/04/20 新規作成

TnbCyclicBarrier.h38 行目に定義があります。

構築子と解体子

◆ CCyclicBarrier()

CCyclicBarrier ( int  iParties = 2,
IListener I = NULL 
)
explicit

コンストラクタ

引数
iPartiesパーティの数。省略すると2です。
Iリスナー。省略できます。

TnbCyclicBarrier.h89 行目に定義があります。

◆ ~CCyclicBarrier()

~CCyclicBarrier ( void  )

デストラクタ

覚え書き
待機中のWait()がある場合、少し処理がかかる可能性があります。

TnbCyclicBarrier.h105 行目に定義があります。

関数詳解

◆ GetNumberWaiting()

int GetNumberWaiting ( void  )

[取得] 待機数

戻り値
Wait()で待っている数

TnbCyclicBarrier.h253 行目に定義があります。

◆ GetParties()

int GetParties ( void  )

[取得] パーティ数

戻り値
パーティの数

TnbCyclicBarrier.h259 行目に定義があります。

◆ Init()

bool Init ( int  iParties = 2,
IListener I = NULL 
)

[設定] 初期化

覚え書き
待機中のWait()がある場合、少し処理がかかる可能性があります。
待機中のWait()は -1 でリターンします。
引数
iPartiesパーティの数(2以上を指定)。省略すると2です。
Iリスナー。省略できます。
戻り値
true成功。
false失敗(iParties の値が2未満が指定されている)。

TnbCyclicBarrier.h131 行目に定義があります。

◆ Reset()

void Reset ( void  )

[操作] リセット

覚え書き
Wait処理中のスレッドがある場合、少し処理がかかる可能性があります。
待機中の Wait()は -1 でリターンします。

TnbCyclicBarrier.h172 行目に定義があります。

◆ Wait()

int Wait ( void  )

[排他] ウェイト

覚え書き
すべてのパーティがWaitを呼び出すまで待機します。
戻り値
0以上到着インデックス
0未満エラー

TnbCyclicBarrier.h187 行目に定義があります。