STLdoc
STLdocumentation
|
The multi_link_registry
object is a network_link_registry
that manages multiple source blocks or multiple target blocks.
More...
#include <agents.h>
Public Member Functions | |
multi_link_registry () | |
Constructs a multi_link_registry object. More... | |
virtual | ~multi_link_registry () |
Destroys the multi_link_registry object. More... | |
void | set_bound (size_t _MaxLinks) |
Sets an upper bound on the number of links that the multi_link_registry object can hold. More... | |
virtual void | add (typename network_link_registry< _Block >::_EType _Link) |
Adds a link to the multi_link_registry object. More... | |
virtual bool | remove (typename network_link_registry< _Block >::_EType _Link) |
Removes a link from the multi_link_registry object. More... | |
virtual bool | contains (typename network_link_registry< _Block >::_EType _Link) |
Searches the multi_link_registry object for a specified block. More... | |
virtual size_t | count () |
Counts the number of items in the multi_link_registry object. More... | |
virtual network_link_registry< _Block >::iterator | begin () |
Returns an iterator to the first element in the multi_link_registry object. More... | |
Public Member Functions inherited from Concurrency::network_link_registry< _Block > | |
virtual void | add (_EType _Link)=0 |
When overridden in a derived class, adds a link to the network_link_registry object. More... | |
virtual bool | remove (_EType _Link)=0 |
When overridden in a derived class, removes a specified block from the network_link_registry object. More... | |
virtual bool | contains (_EType _Link)=0 |
When overridden in a derived class, searches the network_link_registry object for a specified block. More... | |
Protected Member Functions | |
virtual void | _Next_index (size_t &_Index) |
Skips empty slots and updates the index to the next non-empty slot. This is called by the iterator. More... | |
virtual network_link_registry< _Block >::_EType | _Get_element (size_t _Index) const |
Retrieves the element at the given index. If the index is out of bounds, NULL is returned. Users need to use the iterator to access the links More... | |
Private Member Functions | |
void | _Add (typename network_link_registry< _Block >::_EType _Link) |
Adds a link to the multi_link_registry object. More... | |
bool | _Remove (typename network_link_registry< _Block >::_EType _Link) |
Removes a link from the multi_link_registry More... | |
virtual size_t | _Find (typename network_link_registry< _Block >::_EType _Link) |
Searches the registry for the given link More... | |
size_t | _Count () const |
Returns the count of items in the registry. More... | |
Private Attributes | |
size_t | _M_maxLinks |
::Concurrency::details::_Dynamic_array< typename network_link_registry< _Block >::_EType > | _M_vector |
Static Private Attributes | |
static const size_t | _NOT_SET = SIZE_MAX |
Additional Inherited Members | |
Public Types inherited from Concurrency::network_link_registry< _Block > | |
typedef _Block | type |
A type that represents the block type stored in the network_link_registry object. More... | |
typedef _Block * | _EType |
A type that represents an element pointer stored in the network_link_registry object. More... | |
typedef _EType const & | const_reference |
A type that provides a reference to a const element stored in a network_link_registry object for reading and performing const operations. More... | |
typedef _EType const * | const_pointer |
A type that provides a pointer to a const element in a network_link_registry object. More... | |
typedef _Network_link_iterator< _Block > | iterator |
A type that provides an iterator that can read or modify any element in a network_link_registry object. More... | |
The multi_link_registry
object is a network_link_registry
that manages multiple source blocks or multiple target blocks.
_Block | The block data type being stored in the multi_link_registry object. |
|
inline |
Constructs a multi_link_registry
object.
|
inlinevirtual |
Destroys the multi_link_registry
object.
The method throws an invalid_operation exception if called before all links are removed.
|
inlineprivate |
Adds a link to the multi_link_registry
object.
_Link | A pointer to a block to be added. |
|
inlineprivate |
Returns the count of items in the registry.
|
inlineprivatevirtual |
Searches the registry for the given link
_Link | A pointer to a block that is to be searched. |
|
inlineprotectedvirtual |
Retrieves the element at the given index. If the index is out of bounds, NULL
is returned. Users need to use the iterator to access the links
_Index | Index of the link to be retrieved. |
Implements Concurrency::network_link_registry< _Block >.
|
inlineprotectedvirtual |
Skips empty slots and updates the index to the next non-empty slot. This is called by the iterator.
_Index | A reference to the index that is to be updated. |
Implements Concurrency::network_link_registry< _Block >.
|
inlineprivate |
Removes a link from the multi_link_registry
_Link | A pointer to a block to be removed, if found. |
true
if the specified link was found and removed, false
otherwise.
|
inlinevirtual |
Adds a link to the multi_link_registry
object.
_Link | A pointer to a block to be added. |
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.
|
inlinevirtual |
Returns an iterator to the first element in the multi_link_registry
object.
The end state is indicated by a NULL
link.
multi_link_registry
object. Implements Concurrency::network_link_registry< _Block >.
|
inlinevirtual |
Searches the multi_link_registry
object for a specified block.
_Link | A pointer to a block that is to be searched for in the multi_link_registry object. |
true
if the specified block was found, false
otherwise.
|
inlinevirtual |
Counts the number of items in the multi_link_registry
object.
multi_link_registry
object. Implements Concurrency::network_link_registry< _Block >.
|
inlinevirtual |
Removes a link from the multi_link_registry
object.
_Link | A pointer to a block to be removed, if found. |
true
if the link was found and removed, false
otherwise.
|
inline |
Sets an upper bound on the number of links that the multi_link_registry
object can hold.
_MaxLinks | The maximum number of links that the multi_link_registry object can hold. |
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.
|
private |
|
private |
|
staticprivate |