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
    缓冲区存储的和传播的消息的负载类型。

成员

公共构造函数

名称

说明

unbounded_buffer::unbounded_buffer 构造函数

已重载。 构造 unbounded_buffer 消息块。

unbounded_buffer::~unbounded_buffer 析构函数

销毁 unbounded_buffer 消息块。

公共方法

名称

说明

unbounded_buffer::dequeue 方法

unbounded_buffer 消息块中移除项。

unbounded_buffer::enqueue 方法

unbounded_buffer 消息块中添加项。

受保护的方法

名称

说明

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

**命名空间:**并发

请参见

参考

concurrency 命名空间

overwrite_buffer 类

single_assignment 类