共用方式為


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
    訊息處理的處理器型別。

Members

Dd492847.collapse_all(zh-tw,VS.110).gif公用 Typedefs

名稱

描述

target_iterator

查核連接目標的 Iterator。

Dd492847.collapse_all(zh-tw,VS.110).gif公用建構函式

名稱

描述

source_block::source_block 建構函式

建構 source_block 物件。

source_block::~source_block 解構函式

終結 source_block 物件。

Dd492847.collapse_all(zh-tw,VS.110).gif公用方法

名稱

描述

source_block::accept 方法

接受這個 source_block 物件所提供的訊息,將擁有權轉移至呼叫端。

source_block::acquire_ref 方法

取得這個 source_block 物件的參考計數,以防止刪除。

source_block::consume 方法

會將擁有權轉移至呼叫端,使用此 source_block 物件先前提供並由目標成功保留的訊息。

source_block::link_target 方法

連結目標會封鎖這個 source_block 物件。

source_block::release 方法

會釋放前一個成功的訊息保留項目。

source_block::release_ref 方法

釋放此 source_block 物件的參考計數。

source_block::reserve 方法

會保留先前由這個 source_block 物件所提供的訊息。

source_block::unlink_target 方法

將目標區塊與這個 source_block 物件中斷連結。

source_block::unlink_targets 方法

將所有區塊與這個 source_block 物件中斷連結。 (會覆寫 ISource::unlink_targets)。

Dd492847.collapse_all(zh-tw,VS.110).gif受保護的方法

名稱

描述

source_block::accept_message 方法

在衍生類別中被覆寫時,接受由來源提供的訊息。 訊息區塊應該覆寫這個方法,以驗證 _MsgId 並傳回訊息。

source_block::async_send 方法

以非同步方式向上佇列訊息,並且啟動傳播工作 (如果尚未這麼做)

source_block::consume_message 方法

在衍生類別中被覆寫時,會消耗先前已保留的訊息。

source_block::enable_batched_processing 方法

啟用批次處理此區塊的處理。

source_block::initialize_source 方法

初始化此 source_block 中的 message_propagator

source_block::link_target_notification 方法

通知已有新目標與這個 source_block 物件相連結的回呼。

source_block::process_input_messages 方法

處理程序的輸入的訊息。 它僅適用於傳播程式區塊,衍生自 source_block

source_block::propagate_output_messages 方法

傳播至目標的郵件。

source_block::propagate_to_any_targets 方法

在衍生類別中被覆寫時,將指定的訊息傳播至任何或所有連結的目標。 這是訊息區塊主要的傳播慣例。

source_block::release_message 方法

在衍生類別中被覆寫時,釋放前一個訊息保留項目。

source_block::remove_targets 方法

移除這個來源區塊的所有目標連結。 這應從解構函式呼叫。

source_block::reserve_message 方法

在衍生類別中被覆寫時,保留先前由這個 source_block 物件所提供的訊息。

source_block::resume_propagation 方法

在衍生類別中被覆寫時,在釋放保留後恢復傳播。

source_block::sync_send 方法

以同步方式向上佇列訊息,並且啟動傳播工作 (如果尚未這麼做)。

source_block::unlink_target_notification 方法

通知已有目標與這個 source_block 物件解除連結的回呼。

source_block::wait_for_outstanding_async_sends 方法

等候所有非同步傳播完成。 這個傳播程式特定微調等候用於訊息區塊的解構函式,以確定所有的非同步傳播有時間完成,才能摧毀該區塊。

備註

訊息區塊應該衍生自這個區塊,以善用此類別提供的連結管理和同步處理。

繼承階層架構

ISource

source_block

需求

標頭: agents.h

Namespace: 並行存取

請參閱

參考

concurrency 命名空間

ISource 類別