STLdoc
STLdocumentation
|
The network_link_registry
abstract base class manages the links between source and target blocks.
More...
#include <agents.h>
Public Types | |
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... | |
Public Member Functions | |
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... | |
virtual size_t | count ()=0 |
When overridden in a derived class, returns the number of items in the network_link_registry object. More... | |
virtual iterator | begin ()=0 |
When overridden in a derived class, returns an iterator to the first element in the network_link_registry object. More... | |
Protected Member Functions | |
virtual void | _Next_index (size_t &_Index)=0 |
Skips empty slots and updates the index to the next non-empty slot. This is called by the iterator. More... | |
virtual _EType | _Get_element (size_t _Index) const =0 |
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... | |
Friends | |
class | _Network_link_iterator< _Block > |
The network_link_registry
abstract base class manages the links between source and target blocks.
_Block | The block data type being stored in the network_link_registry . |
The network link registry
is not safe for concurrent access.
typedef _Block* Concurrency::network_link_registry< _Block >::_EType |
A type that represents an element pointer stored in the network_link_registry
object.
typedef _EType const* Concurrency::network_link_registry< _Block >::const_pointer |
A type that provides a pointer to a const
element in a network_link_registry
object.
typedef _EType const& Concurrency::network_link_registry< _Block >::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.
typedef _Network_link_iterator<_Block> Concurrency::network_link_registry< _Block >::iterator |
A type that provides an iterator that can read or modify any element in a network_link_registry
object.
typedef _Block Concurrency::network_link_registry< _Block >::type |
A type that represents the block type stored in the network_link_registry
object.
|
protectedpure virtual |
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. |
Implemented in Concurrency::multi_link_registry< _Block >, Concurrency::multi_link_registry< ITarget< size_t > >, Concurrency::multi_link_registry< ITarget< _Type > >, Concurrency::multi_link_registry< ISource< _Type > >, Concurrency::multi_link_registry< ISource< size_t > >, Concurrency::multi_link_registry< ISource< _Input > >, Concurrency::multi_link_registry< ISource< agent_status > >, Concurrency::multi_link_registry< ITarget< agent_status > >, Concurrency::single_link_registry< _Block >, Concurrency::single_link_registry< ITarget< size_t > >, Concurrency::single_link_registry< ITarget< _Type > >, Concurrency::single_link_registry< ITarget< _Output > >, Concurrency::single_link_registry< ITarget< std::vector< _Type > > >, and Concurrency::single_link_registry< ITarget< _Destination_type > >.
|
protectedpure virtual |
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. |
Implemented in Concurrency::multi_link_registry< _Block >, Concurrency::multi_link_registry< ITarget< size_t > >, Concurrency::multi_link_registry< ITarget< _Type > >, Concurrency::multi_link_registry< ISource< _Type > >, Concurrency::multi_link_registry< ISource< size_t > >, Concurrency::multi_link_registry< ISource< _Input > >, Concurrency::multi_link_registry< ISource< agent_status > >, Concurrency::multi_link_registry< ITarget< agent_status > >, Concurrency::single_link_registry< _Block >, Concurrency::single_link_registry< ITarget< size_t > >, Concurrency::single_link_registry< ITarget< _Type > >, Concurrency::single_link_registry< ITarget< _Output > >, Concurrency::single_link_registry< ITarget< std::vector< _Type > > >, and Concurrency::single_link_registry< ITarget< _Destination_type > >.
|
pure virtual |
When overridden in a derived class, adds a link to the network_link_registry
object.
_Link | A pointer to a block to be added. |
|
pure virtual |
When overridden in a derived class, returns an iterator to the first element in the network_link_registry
object.
The end state of the iterator is indicated by a NULL
link.
network_link_registry
object. Implemented in Concurrency::multi_link_registry< _Block >, Concurrency::multi_link_registry< ITarget< size_t > >, Concurrency::multi_link_registry< ITarget< _Type > >, Concurrency::multi_link_registry< ISource< _Type > >, Concurrency::multi_link_registry< ISource< size_t > >, Concurrency::multi_link_registry< ISource< _Input > >, Concurrency::multi_link_registry< ISource< agent_status > >, Concurrency::multi_link_registry< ITarget< agent_status > >, Concurrency::single_link_registry< _Block >, Concurrency::single_link_registry< ITarget< size_t > >, Concurrency::single_link_registry< ITarget< _Type > >, Concurrency::single_link_registry< ITarget< _Output > >, Concurrency::single_link_registry< ITarget< std::vector< _Type > > >, and Concurrency::single_link_registry< ITarget< _Destination_type > >.
|
pure virtual |
When overridden in a derived class, searches the network_link_registry
object for a specified block.
_Link | A pointer to a block that is being searched for in the network_link_registry object. |
true
if the block was found, false
otherwise.
|
pure virtual |
When overridden in a derived class, returns the number of items in the network_link_registry
object.
network_link_registry
object. Implemented in Concurrency::multi_link_registry< _Block >, Concurrency::multi_link_registry< ITarget< size_t > >, Concurrency::multi_link_registry< ITarget< _Type > >, Concurrency::multi_link_registry< ISource< _Type > >, Concurrency::multi_link_registry< ISource< size_t > >, Concurrency::multi_link_registry< ISource< _Input > >, Concurrency::multi_link_registry< ISource< agent_status > >, Concurrency::multi_link_registry< ITarget< agent_status > >, Concurrency::single_link_registry< _Block >, Concurrency::single_link_registry< ITarget< size_t > >, Concurrency::single_link_registry< ITarget< _Type > >, Concurrency::single_link_registry< ITarget< _Output > >, Concurrency::single_link_registry< ITarget< std::vector< _Type > > >, and Concurrency::single_link_registry< ITarget< _Destination_type > >.
|
pure virtual |
When overridden in a derived class, removes a specified block from the network_link_registry
object.
_Link | A pointer to a block to be removed, if found. |
true
if the link was found and removed, false
otherwise.
|
friend |