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

network_link_registry

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.

See also

concurrency Namespace
single_link_registry Class