次の方法で共有


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 コンストラクター

propagator_block オブジェクトを構築します。

propagator_block::~propagator_block デストラクター

propagator_block オブジェクトを破棄します。

パブリック メソッド

名前

説明

propagator_block::propagate メソッド

ソース ブロックからこのターゲット ブロックにメッセージを非同期的に渡します。

propagator_block::send メソッド

このブロックへのメッセージを同期的に開始します。 ISource ブロックによって呼び出されます。 この関数が完了すると、このブロックには既にメッセージが反映されています。

プロテクト メソッド

名前

説明

propagator_block::decline_incoming_messages メソッド

新しいメッセージが拒否されるブロックを指定します。

propagator_block::initialize_source_and_target メソッド

ベース オブジェクトを初期化します。 特に、message_processor オブジェクトは初期化する必要があります。

propagator_block::link_source メソッド

指定されたソース ブロックをこの propagator_block オブジェクトにリンクします。

propagator_block::propagate_message メソッド

派生クラスでオーバーライドされると、このメソッドは ISource ブロックからこの propagator_block オブジェクトに非同期的にメッセージを渡します。 このメソッドは、ソース ブロックから呼び出されたときに propagate メソッドによって呼び出されます。

propagator_block::register_filter メソッド

すべての受信メッセージに対して呼び出されるフィルター メソッドを登録します。

propagator_block::remove_network_links メソッド

この propagator_block オブジェクトからすべてのソース ネットワーク リンクとターゲット ネットワーク リンクを削除します。

propagator_block::send_message メソッド

派生クラスでオーバーライドされると、このメソッドは ISource ブロックからこの propagator_block オブジェクトに同期的にメッセージを渡します。 このメソッドは、ソース ブロックから呼び出されたときに send メソッドによって呼び出されます。

propagator_block::unlink_source メソッド

指定されたソース ブロックとこの propagator_block オブジェクトとのリンクを解除します。

propagator_block::unlink_sources メソッド

この propagator_block オブジェクトからすべてのソース ブロックのリンクを解除します。 (ITarget::unlink_sources をオーバーライドします)。

解説

多重継承を回避するために、propagator_block クラスは source_block クラスおよび ITarget 抽象クラスから継承します。 target_block クラスのほとんどの機能はここでレプリケートされます。

継承階層

ISource

source_block

ITarget

propagator_block

必要条件

ヘッダー: agents.h

名前空間: Concurrency

参照

参照

Concurrency 名前空間

source_block クラス

ITarget クラス