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

成员

公共构造函数

Name

说明

single_assignment::single_assignment 构造函数

已重载。 构造 single_assignment 消息块。

single_assignment::~single_assignment 析构函数

销毁 single_assignment 消息块。

公共方法

Name

说明

single_assignment::has_value 方法

检查该 single_assignment 消息该块是否已经使用一个值初始化。

single_assignment::value 方法

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

受保护的方法

Name

说明

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 类