Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

single_assignment Class

 

A single_assignment messaging block is a multi-target, multi-source, ordered propagator_block capable of storing a single, write-once message.

template<
   class _Type
>
class single_assignment : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;

_Type

The payload type of the message stored and propagated by the buffer.

Name

Description

single_assignment::single_assignment Constructor

Overloaded. Constructs a single_assignment messaging block.

single_assignment::~single_assignment Destructor

Destroys the single_assignment messaging block.

Name

Description

single_assignment::has_value Method

Checks whether this single_assignment messaging block has been initialized with a value yet.

single_assignment::value Method

Gets a reference to the current payload of the message being stored in the single_assignment messaging block.

Name

Description

single_assignment::accept_message Method

Accepts a message that was offered by this single_assignment messaging block, returning a copy of the message to the caller.

single_assignment::consume_message Method

Consumes a message previously offered by the single_assignment and reserved by the target, returning a copy of the message to the caller.

single_assignment::link_target_notification Method

A callback that notifies that a new target has been linked to this single_assignment messaging block.

single_assignment::propagate_message Method

Asynchronously passes a message from an ISource block to this single_assignment messaging block. It is invoked by the propagate method, when called by a source block.

single_assignment::propagate_to_any_targets Method

Places the message_PMessage in this single_assignment messaging block and offers it to all of the linked targets.

single_assignment::release_message Method

Releases a previous message reservation. (Overrides source_block::release_message.)

single_assignment::reserve_message Method

Reserves a message previously offered by this single_assignment messaging block. (Overrides source_block::reserve_message.)

single_assignment::resume_propagation Method

Resumes propagation after a reservation has been released. (Overrides source_block::resume_propagation.)

single_assignment::send_message Method

Synchronously passes a message from an ISource block to this single_assignment messaging block. It is invoked by the send method, when called by a source block.

A single_assignment messaging block propagates out copies of its message to each target.

For more information, see Asynchronous Message Blocks.

Requirements

Header: agents.h

Namespace: concurrency

Show:
© 2016 Microsoft