Share via


propagator_block 類別

propagator_block 類別是同時為來源和目標之訊息區塊的抽象基底類別。 它結合 source_blocktarget_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
    訊息處理的處理器型別。

成員

公用 Typedefs

名稱

說明

source_iterator

這個 propagator_blocksource_link_manager 的 Iterator 的型別。

公用建構函式

名稱

說明

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::process_input_messages 方法

處理輸入訊息。 這會將傳回者區塊才有用,從 source_block (覆寫衍生自 source_block::process_input_messages)。

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

ITarget

source_block

propagator_block

需求

標頭: agents.h

**命名空間:**concurrency

請參閱

參考

concurrency 命名空間

source_block 類別

ITarget 類別