multi_link_registry Class
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.