multi_link_registry 类

multi_link_registry 对象是管理多个源块或多个目标块的 network_link_registry

语法

template<class _Block>
class multi_link_registry : public network_link_registry<_Block>;

参数

_Block
存储在 multi_link_registry 对象中的块数据类型。

成员

公共构造函数

名称 描述
multi_link_registry 构造 multi_link_registry 对象。
~multi_link_registry 析构函数 销毁 multi_link_registry 对象。

公共方法

名称 说明
add multi_link_registry 对象添加链接。 (重写 network_link_registry::add。)
begin 返回一个指向 multi_link_registry 对象中第一个元素的迭代器。 (重写 network_link_registry::begin。)
contains multi_link_registry 对象中搜索指定块。 (重写 network_link_registry::contains。)
count multi_link_registry 对象中的项目数进行计数。 (重写 network_link_registry::count。)
remove multi_link_registry 对象中删除链接。 (重写 network_link_registry::remove。)
set_bound 设置 multi_link_registry 对象可以容纳的最大链接数。

继承层次结构

network_link_registry

multi_link_registry

要求

标头: agents.h

命名空间: 并发

add

multi_link_registry 对象添加链接。

virtual void add(_EType _Link);

参数

_Link
指向要添加的块的指针。

备注

如果注册表中已存在某个链接,或者已使用 set_bound 函数设置边界并已删除某个链接,则该方法将引发 invalid_link_target 异常。

begin

返回一个指向 multi_link_registry 对象中第一个元素的迭代器。

virtual iterator begin();

返回值

用于处理 multi_link_registry 对象中的第一个元素的迭代器。

注解

结束状态由 NULL 链接指示。

contains

multi_link_registry 对象中搜索指定块。

virtual bool contains(_EType _Link);

参数

_Link
指向要在 multi_link_registry 对象中搜索的块的指针。

返回值

如果找到指定块,则为 true;否则,为 false

count

multi_link_registry 对象中的项目数进行计数。

virtual size_t count();

返回值

multi_link_registry 对象中的项数。

multi_link_registry

构造 multi_link_registry 对象。

multi_link_registry();

~multi_link_registry

销毁 multi_link_registry 对象。

virtual ~multi_link_registry();

备注

如果在删除链接之前调用该方法,该方法将引发 invalid_operation 异常。

删除

multi_link_registry 对象中删除链接。

virtual bool remove(_EType _Link);

参数

_Link
指向要删除的块的指针(如果找到)。

返回值

如果找到并移除了该链接,则为 true;否则为 false

set_bound

设置 multi_link_registry 对象可以容纳的最大链接数。

void set_bound(size_t _MaxLinks);

参数

_MaxLinks
multi_link_registry 对象可以容纳的最大链接数。

备注

设置了界限后,取消某项的链接将导致 multi_link_registry 对象进入不可变状态,在该状态下进一步调用 add 将引发 invalid_link_target 异常。

另请参阅

并发命名空间
single_link_registry 类