source_link_manager Class
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
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::source_link_manager Constructor | Constructs a source_link_manager object. |
source_link_manager::~source_link_manager Destructor | Destroys the source_link_manager object. |
Public Methods
Name | Description |
---|---|
source_link_manager::add Method | Adds a source link to the source_link_manager object. |
source_link_manager::begin Method | Returns an iterator to the first element in the source_link_manager object. |
source_link_manager::contains Method | Searches the network_link_registry within this source_link_manager object for a specified block. |
source_link_manager::count Method | Counts the number of linked blocks in the source_link_manager object. |
source_link_manager::reference Method | Acquires a reference on the source_link_manager object. |
source_link_manager::register_target_block Method | Registers the target block that holds this source_link_manager object. |
source_link_manager::release Method | Releases the reference on the source_link_manager object. |
source_link_manager::remove Method | Removes a link from the source_link_manager object. |
source_link_manager::set_bound Method | 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
source_link_manager::add Method
Adds a source link to the source_link_manager
object.
void add(_EType _Link);
Parameters
_Link
A pointer to a block to be added.
source_link_manager::begin Method
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.
source_link_manager::contains Method
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.
source_link_manager::count Method
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.
source_link_manager::reference Method
Acquires a reference on the source_link_manager
object.
void reference();
source_link_manager::register_target_block Method
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.
source_link_manager::release Method
Releases the reference on the source_link_manager
object.
void release();
source_link_manager::remove Method
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.
source_link_manager::set_bound Method
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::source_link_manager Constructor
Constructs a source_link_manager
object.
source_link_manager();
source_link_manager::~source_link_manager Destructor
Destroys the source_link_manager
object.
~source_link_manager();
See Also
concurrency Namespace
single_link_registry Class
multi_link_registry Class