共用方式為


unbounded_buffer 類別

unbounded_buffer 傳訊區塊是多目標、多來源的排序 propagator_block,能夠存放無限個訊息。

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

參數

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

Members

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

名稱

描述

unbounded_buffer::unbounded_buffer 建構函式

多載。 建構 unbounded_buffer 傳訊區塊。

unbounded_buffer::~unbounded_buffer 解構函式

終結 unbounded_buffer 傳訊區塊。

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

名稱

描述

unbounded_buffer::dequeue 方法

unbounded_buffer 傳訊區塊中的項目。

unbounded_buffer::enqueue 方法

將項目加入至 unbounded_buffer 傳訊區塊。

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

名稱

描述

unbounded_buffer::accept_message 方法

接受這個 unbounded_buffer 傳訊區塊所提供的訊息,將擁有權轉移至呼叫端。

unbounded_buffer::consume_message 方法

會將擁有權轉移至呼叫端,使用 unbounded_buffer 傳訊區塊先前提供並由目標保留的訊息。

unbounded_buffer::link_target_notification 方法

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

unbounded_buffer::process_input_messages 方法

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

unbounded_buffer::propagate_message 方法

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

unbounded_buffer::propagate_output_messages 方法

message_PMessage 置於此 unbounded_buffer 傳訊區塊中,並嘗試將它提供給所有連結目標。 (會覆寫 source_block::propagate_output_messages。)

unbounded_buffer::release_message 方法

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

unbounded_buffer::reserve_message 方法

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

unbounded_buffer::resume_propagation 方法

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

unbounded_buffer::send_message 方法

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

unbounded_buffer::supports_anonymous_source 方法

會覆寫supports_anonymous_source ,表示這個區塊可以接受,但是沒有連結的來源所提供給它的訊息的方法。 (會覆寫 ITarget::supports_anonymous_source。)

備註

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

繼承階層架構

ISource

ITarget

source_block

propagator_block

unbounded_buffer

需求

標頭: agents.h

Namespace: 並行存取

請參閱

參考

concurrency 命名空間

overwrite_buffer 類別

single_assignment 類別