[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]
Single-assignment buffer: can be written to only once. Single assignment is a multi-target, multi-source, ordered propagator block
template< class _Type > class single_assignment : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;
Name
Description
single_assignment::~single_assignment Destructor
Cleans up any resources that may have been created by the single_assignment.
single_assignment::single_assignment Constructor
Overloaded. Creates an single_assignment within the specified schedule group. The scheduler is implied by the schedule group.
single_assignment::has_value Method
Checks whether this block has been initialized yet.
single_assignment::value Method
Gets a reference to the current payload of the message being stored.
single_assignment::accept_message Method
Accepts an offered message by the source, transferring ownership to the caller.
single_assignment::consume_message Method
Consumes a message previously offered by the source and reserved by the target, transferring ownership to the caller.
single_assignment::link_target_notification Method
Notification that a target was linked to this source.
single_assignment::propagate_message Method
The main propagate() function for ITarget blocks. Called by a source block, generally within an asynchronous task to send messages to its targets.
single_assignment::propagate_to_any_targets Method
Takes the message and propagates it to all the targets of this single_assignment
single_assignment::release_message Method
Releases a previous message reservation. (Overrides Concurrency::source_block<_TargetLinkRegistry, _MessageProcessorType>::release_message).
single_assignment::reserve_message Method
Reserves a message previously offered by the source. (Overrides Concurrency::source_block<_TargetLinkRegistry, _MessageProcessorType>::reserve_message).
single_assignment::resume_propagation Method
Resumes propagation after a reservation has been released (Overrides Concurrency::source_block<_TargetLinkRegistry, _MessageProcessorType>::resume_propagation).
single_assignment::send_message Method
Synchronously sends a message to this block. When this function completes the message will already have propagated into the block.
For more information, see Asynchronous Message Blocks.
ISource<typename _TargetLinkRegistry::type::type>
source_block<_TargetLinkRegistry, _MessageProcessorType>
ITarget<typename _SourceLinkRegistry::type::source_type>
propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>
Concurrency::single_assignment<_Type>
Header: agents.h