source_block クラス
source_block クラスは、ソースのみのブロックの抽象基底クラスです。 このクラスには、基本的なリンク管理機能および一般的なエラー チェック機能が用意されています。
template<
class _TargetLinkRegistry,
class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class source_block : public ISource<typename _TargetLinkRegistry::type::type>;
パラメーター
_TargetLinkRegistry
ターゲット リンクの保持に使用されるリンク レジストリ。_MessageProcessorType
メッセージ処理のためのプロセッサの種類。
メンバー
パブリック typedef
名前 |
説明 |
---|---|
target_iterator |
接続されたターゲットを走査する反復子。 |
パブリック コンストラクター
名前 |
説明 |
---|---|
source_block オブジェクトを構築します。 |
|
source_block オブジェクトを破棄します。 |
パブリック メソッド
名前 |
説明 |
---|---|
この source_block オブジェクトによって提供されたメッセージを受け入れ、所有権を呼び出し元に移譲します。 |
|
この source_block オブジェクトの参照カウントを取得し、削除されるのを防ぎます。 |
|
この source_block オブジェクトによって以前に提供され、ターゲットによって正常に予約されたメッセージを使用して、所有権を呼び出し元に移譲します。 |
|
ターゲット ブロックをこの source_block オブジェクトにリンクします。 |
|
以前に正常に行われたメッセージの予約を解放します。 |
|
この source_block オブジェクトの参照カウントを解放します。 |
|
この source_block オブジェクトによって以前に提供されたメッセージを予約します。 |
|
この source_block オブジェクトからターゲット ブロックのリンクを解除します。 |
|
この source_block オブジェクトからすべてのターゲット ブロックのリンクを解除します。(ISource::unlink_targets をオーバーライドします。) |
プロテクト メソッド
名前 |
説明 |
---|---|
派生クラスでオーバーライドされると、ソースによって提供されたメッセージを受け付けます。 メッセージ ブロックでは、このメソッドをオーバーライドして、_MsgId を検証し、メッセージを返す必要があります。 |
|
メッセージを非同期的にキューに配置し、反映タスクがまだ実行されていなければ、開始します。 |
|
派生クラスでオーバーライドされると、以前に予約されたメッセージを使用します。 |
|
このブロックのバッチ プロセッシングを有効にします。 |
|
この source_block 内で message_propagator を初期化します。 |
|
新しいターゲットがこの source_block オブジェクトにリンクされたことを通知するコールバックです。 |
|
プロセス入力メッセージ。 これは、source_block から派生する伝達子ブロックの場合にのみ有効です |
|
ターゲットには、メッセージ。 |
|
派生クラスでオーバーライドされると、指定されたメッセージをリンクされたターゲットのいずれかまたはすべてに伝達します。 これは、メッセージ ブロックの主要な伝達ルーチンです。 |
|
派生クラスでオーバーライドされると、以前に行われたメッセージの予約を解放します。 |
|
このソース ブロックに対するすべてのターゲット リンクを削除します。 このメソッドはデストラクターから呼び出します。 |
|
派生クラスでオーバーライドされると、この source_block オブジェクトによって以前に提供されたメッセージを予約します。 |
|
派生クラスでオーバーライドされると、予約が解放された後で反映を再開します。 |
|
メッセージを同期的にキューに配置し、反映タスクがまだ実行されていなければ、開始します。 |
|
ターゲットがこの source_block オブジェクトからリンク解除されたことを通知するコールバックです。 |
|
すべての非同期伝達が完了するまで待機します。 この伝達子に固有のスピン待機は、ブロックを破棄する前にすべての非同期伝達が完了する時間を確保するためにメッセージ ブロックのデストラクター内で使用します。 |
解説
このクラスに用意されているリンク管理および同期を利用するには、メッセージ ブロックをこのブロックから派生させる必要があります。
継承階層
source_block
必要条件
ヘッダー: agents.h
名前空間: concurrency