propagator_block クラス
propagator_block クラスは、ソースでもありターゲットでもあるメッセージ ブロックの抽象基底クラスです。 source_block クラスと target_block クラスの両方の機能が組み合わされています。
template<
class _TargetLinkRegistry,
class _SourceLinkRegistry,
class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class propagator_block : public source_block<_TargetLinkRegistry, _MessageProcessorType>, public ITarget<typename _SourceLinkRegistry::type::source_type>;
パラメーター
_TargetLinkRegistry
ターゲット リンクの保持に使用されるリンク レジストリ。_SourceLinkRegistry
ソース リンクの保持に使用されるリンク レジストリ。_MessageProcessorType
メッセージを処理するプロセッサの種類。
メンバー
パブリック typedef
名前 |
説明 |
---|---|
source_iterator |
この propagator_block に対する source_link_manager の反復子の型。 |
パブリック コンストラクター
名前 |
説明 |
---|---|
propagator_block オブジェクトを構築します。 |
|
propagator_block オブジェクトを破棄します。 |
パブリック メソッド
名前 |
説明 |
---|---|
ソース ブロックからこのターゲット ブロックにメッセージを非同期的に渡します。 |
|
このブロックへのメッセージを同期的に開始します。 ISource ブロックによって呼び出されます。 この関数が完了すると、このブロックには既にメッセージが反映されています。 |
プロテクト メソッド
名前 |
説明 |
---|---|
新しいメッセージが拒否されるブロックを指定します。 |
|
ベース オブジェクトを初期化します。 特に、message_processor オブジェクトは初期化する必要があります。 |
|
指定されたソース ブロックをこの propagator_block オブジェクトにリンクします。 |
|
プロセス入力メッセージ。 これは、source_block (オーバーライド source_block::process_input_messages) から派生する伝達子ブロックの場合にのみ有効です |
|
派生クラスでオーバーライドされると、このメソッドは ISource ブロックからこの propagator_block オブジェクトに非同期的にメッセージを渡します。 このメソッドは、ソース ブロックから呼び出されたときに propagate メソッドによって呼び出されます。 |
|
すべての受信メッセージに対して呼び出されるフィルター メソッドを登録します。 |
|
この propagator_block オブジェクトからすべてのソース ネットワーク リンクとターゲット ネットワーク リンクを削除します。 |
|
派生クラスでオーバーライドされると、このメソッドは ISource ブロックからこの propagator_block オブジェクトに同期的にメッセージを渡します。 このメソッドは、ソース ブロックから呼び出されたときに send メソッドによって呼び出されます。 |
|
指定されたソース ブロックとこの propagator_block オブジェクトとのリンクを解除します。 |
|
この propagator_block オブジェクトからすべてのソース ブロックのリンクを解除します。(ITarget::unlink_sources をオーバーライドします)。 |
解説
多重継承を回避するために、propagator_block クラスは source_block クラスおよび ITarget 抽象クラスから継承します。 target_block クラスのほとんどの機能はここでレプリケートされます。
継承階層
propagator_block
必要条件
ヘッダー: agents.h
名前空間: concurrency