Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The multi_link_registry object is a network_link_registry that manages multiple source blocks or multiple target blocks.
Syntax
template<class _Block>
class multi_link_registry : public network_link_registry<_Block>;
Parameters
_Block
The block data type being stored in the multi_link_registry object.
Members
Public Constructors
| Name | Description |
|---|---|
| multi_link_registry | Constructs a multi_link_registry object. |
| ~multi_link_registry Destructor | Destroys the multi_link_registry object. |
Public Methods
| Name | Description |
|---|---|
| add | Adds a link to the multi_link_registry object. (Overrides network_link_registry::add.) |
| begin | Returns an iterator to the first element in the multi_link_registry object. (Overrides network_link_registry::begin.) |
| contains | Searches the multi_link_registry object for a specified block. (Overrides network_link_registry::contains.) |
| count | Counts the number of items in the multi_link_registry object. (Overrides network_link_registry::count.) |
| remove | Removes a link from the multi_link_registry object. (Overrides network_link_registry::remove.) |
| set_bound | Sets an upper bound on the number of links that the multi_link_registry object can hold. |
Inheritance Hierarchy
multi_link_registry
Requirements
Header: agents.h
Namespace: concurrency
add
Adds a link to the multi_link_registry object.
virtual void add(_EType _Link);
Parameters
_Link
A pointer to a block to be added.
Remarks
The method throws an invalid_link_target exception if the link is already present in the registry, or if a bound has already been set with the set_bound function and a link has since been removed.
begin
Returns an iterator to the first element in the multi_link_registry object.
virtual iterator begin();
Return Value
An iterator addressing the first element in the multi_link_registry object.
Remarks
The end state is indicated by a NULL link.
contains
Searches the multi_link_registry object for a specified block.
virtual bool contains(_EType _Link);
Parameters
_Link
A pointer to a block that is to be searched for in the multi_link_registry object.
Return Value
true if the specified block was found, false otherwise.
count
Counts the number of items in the multi_link_registry object.
virtual size_t count();
Return Value
The number of items in the multi_link_registry object.
multi_link_registry
Constructs a multi_link_registry object.
multi_link_registry();
~multi_link_registry
Destroys the multi_link_registry object.
virtual ~multi_link_registry();
Remarks
The method throws an invalid_operation exception if called before all links are removed.
remove
Removes a link from the multi_link_registry object.
virtual bool remove(_EType _Link);
Parameters
_Link
A pointer to a block to be removed, if found.
Return Value
true if the link was found and removed, false otherwise.
set_bound
Sets an upper bound on the number of links that the multi_link_registry object can hold.
void set_bound(size_t _MaxLinks);
Parameters
_MaxLinks
The maximum number of links that the multi_link_registry object can hold.
Remarks
After a bound is set, unlinking an entry will cause the multi_link_registry object to enter an immutable state where further calls to add will throw an invalid_link_target exception.