共用方式為


single_assignment 類別

single_assignment 傳訊區塊是多目標、多來源的排序 propagator_block,能夠儲存寫入一次的單一 message

template<
   class _Type
>
class single_assignment : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;

參數

  • _Type
    緩衝區預存及傳播的訊息的承載類型。

成員

公用建構函式

名稱

描述

single_assignment::single_assignment 建構函式

多載。 建構 single_assignment 傳訊區塊。

single_assignment::~single_assignment 解構函式

終結 single_assignment 傳訊區塊。

公用方法

名稱

描述

single_assignment::has_value 方法

會檢查這個 single_assignment 傳訊區塊是否已初始化並具有值。

single_assignment::value 方法

取得訊息目前承載的參考,該訊息目前存放在 single_assignment 傳訊區塊中。

受保護的方法

名稱

描述

single_assignment::accept_message 方法

接受這個 single_assignment 傳訊區塊所提供的訊息,將訊息複本傳回給呼叫端。

single_assignment::consume_message 方法

會將訊息複本傳回至呼叫端,使用 single_assignment 先前提供並由目標保留的訊息。

single_assignment::link_target_notification 方法

通知已有新目標與這個 single_assignment 傳訊區塊相連結的回呼。

single_assignment::propagate_message 方法

以非同步方式將訊息從 ISource 區塊傳遞到這個 single_assignment 傳訊區塊。 會於來源區塊呼叫時由 propagate 方法叫用。

single_assignment::propagate_to_any_targets 方法

message_PMessage 置於此 single_assignment 傳訊區塊中,並將它提供給所有連結目標。

single_assignment::release_message 方法

會釋放前一個訊息保留項目。 (會覆寫 source_block::release_message)。

single_assignment::reserve_message 方法

會保留先前由這個 single_assignment 傳訊區塊所提供的訊息。 (會覆寫 source_block::reserve_message)。

single_assignment::resume_propagation 方法

釋放保留項目之後繼續傳播。 (會覆寫 source_block::resume_propagation)。

single_assignment::send_message 方法

以同步方式將訊息從 ISource 區塊傳遞到這個 single_assignment 傳訊區塊。 會於來源區塊呼叫時由 send 方法叫用。

備註

single_assignment 傳訊區塊會傳播出每個目標其訊息的複本。

如需詳細資訊,請參閱非同步訊息區

繼承階層架構

ISource

source_block

ITarget

propagator_block

single_assignment

需求

標頭: agents.h

**命名空間:**並行

請參閱

參考

Concurrency 命名空間

overwrite_buffer 類別

unbounded_buffer 類別