overwrite_buffer 类

overwrite_buffer 消息块是一个多目标、多源、有序的 propagator_block,一次能够存储一条消息。 新消息覆盖之前保存的消息。

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

参数

  • _Type
    缓冲区存储的和传播的消息的负载类型。

成员

公共构造函数

名称

说明

overwrite_buffer::overwrite_buffer 构造函数

已重载。 构造 overwrite_buffer 消息块。

overwrite_buffer::~overwrite_buffer 析构函数

销毁 overwrite_buffer 消息块。

公共方法

名称

说明

overwrite_buffer::has_value 方法

检查此 overwrite_buffer 消息块是否已具有一个值。

overwrite_buffer::value 方法

获取对当前存储在 overwrite_buffer 消息块中消息的当前负载的引用。

受保护的方法

名称

说明

overwrite_buffer::accept_message 方法

接受由此 overwrite_buffer 消息块提供的消息,将消息副本返还给调用方。

overwrite_buffer::consume_message 方法

使用先前由 overwrite_buffer 消息块提供并由目标保留的消息,将消息副本返还给调用方。

overwrite_buffer::link_target_notification 方法

通知新的目标已链接至此 overwrite_buffer 消息块的回调。

overwrite_buffer::propagate_message 方法

ISource 块中的消息异步传递到此 overwrite_buffer 消息块中。 在由源块调用时,其由 propagate 方法调用。

overwrite_buffer::propagate_to_any_targets 方法

message_PMessage 放置在此 overwrite_buffer 消息块中,并将它提供给所有链接目标。

overwrite_buffer::release_message 方法

释放以前的消息保留。(覆盖 source_block::release_message。)

overwrite_buffer::reserve_message 方法

保留此 overwrite_buffer 消息块之前提供的消息。(覆盖 source_block::reserve_message。)

overwrite_buffer::resume_propagation 方法

释放保留后继续传播。(覆盖 source_block::resume_propagation。)

overwrite_buffer::send_message 方法

将消息从 ISource 块同步传递到此 overwrite_buffer 消息块中。 在由源块调用时,其由 send 方法调用。

overwrite_buffer::supports_anonymous_source 方法

重写 supports_anonymous_source 方法表示此块可以接受未链接的源为其提供的消息。重写 ( ITarget::supports_anonymous_source。)

备注

overwrite_buffer 消息块将其存储的消息的副本传播到每个目标。

有关详细信息,请参阅异步消息块

继承层次结构

ISource

ITarget

source_block

propagator_block

overwrite_buffer

要求

**标头:**agents.h

**命名空间:**并发

请参见

参考

concurrency 命名空间

unbounded_buffer 类

single_assignment 类