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 对象可以容纳的最大链接数。 |
继承层次结构
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
异常。