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
訊息處理的處理器型別。
成員
公用 Typedefs
名稱 |
描述 |
---|---|
target_iterator |
查核連接目標的 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 物件解除連結的回呼。 |
|
等候所有非同步傳播完成。 這個傳播程式特定微調等候用於訊息區塊的解構函式,以確定所有的非同步傳播有時間完成,才能摧毀該區塊。 |
備註
訊息區塊應該衍生自這個區塊,以善用此類別提供的連結管理和同步處理。
繼承階層架構
需求
標頭: agents.h
**命名空間:**並行