source_link_manager Class
The source_link_manager
object manages messaging block network links to ISource
blocks.
Syntax
template<class _LinkRegistry>
class source_link_manager;
Parameters
_LinkRegistry
The network link registry.
Members
Public Typedefs
Name | Description |
---|---|
const_pointer |
A type that provides a pointer to a const element in a source_link_manager object. |
const_reference |
A type that provides a reference to a const element stored in a source_link_manager object for reading and performing const operations. |
iterator |
A type that provides an iterator that can read or modify any element in the source_link_manager object. |
type |
The type of link registry being managed by the source_link_manager object. |
Public Constructors
Name | Description |
---|---|
source_link_manager | Constructs a source_link_manager object. |
~source_link_manager Destructor | Destroys the source_link_manager object. |
Public Methods
Name | Description |
---|---|
add | Adds a source link to the source_link_manager object. |
begin | Returns an iterator to the first element in the source_link_manager object. |
contains | Searches the network_link_registry within this source_link_manager object for a specified block. |
count | Counts the number of linked blocks in the source_link_manager object. |
reference | Acquires a reference on the source_link_manager object. |
register_target_block | Registers the target block that holds this source_link_manager object. |
release | Releases the reference on the source_link_manager object. |
remove | Removes a link from the source_link_manager object. |
set_bound | Sets the maximum number of source links that can be added to this source_link_manager object. |
Remarks
Currently, the source blocks are reference counted. This is a wrapper on a network_link_registry
object that allows concurrent access to the links and provides the ability to reference the links through callbacks. Message blocks (target_block
s or propagator_block
s) should use this class for their source links.
Inheritance Hierarchy
source_link_manager
Requirements
Header: agents.h
Namespace: concurrency
add
Adds a source link to the source_link_manager
object.
void add(_EType _Link);
Parameters
_Link
A pointer to a block to be added.
begin
Returns an iterator to the first element in the source_link_manager
object.
iterator begin();
Return Value
An iterator addressing the first element in the source_link_manager
object.
Remarks
The end state of the iterator is indicated by a NULL
link.
contains
Searches the network_link_registry
within this source_link_manager
object for a specified block.
bool contains(_EType _Link);
Parameters
_Link
A pointer to a block that is to be searched for in the source_link_manager
object.
Return Value
true
if the specified block was found, false
otherwise.
count
Counts the number of linked blocks in the source_link_manager
object.
size_t count();
Return Value
The number of linked blocks in the source_link_manager
object.
reference
Acquires a reference on the source_link_manager
object.
void reference();
register_target_block
Registers the target block that holds this source_link_manager
object.
void register_target_block(_Inout_ ITarget<typename _Block::source_type>* _PTarget);
Parameters
_PTarget
The target block holding this source_link_manager
object.
release
Releases the reference on the source_link_manager
object.
void release();
remove
Removes a link from the source_link_manager
object.
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 the maximum number of source links that can be added to this source_link_manager
object.
void set_bound(size_t _MaxLinks);
Parameters
_MaxLinks
The maximum number of links.
source_link_manager
Constructs a source_link_manager
object.
source_link_manager();
~source_link_manager
Destroys the source_link_manager
object.
~source_link_manager();
See also
concurrency Namespace
single_link_registry Class
multi_link_registry Class