Windows apps
Collapse the table of content
Expand the table of content
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.

join Class

A join messaging block is a single-target, multi-source, ordered propagator_block which combines together messages of type _Type from each of its sources.

   class _Type,
   join_type _Jtype = non_greedy
class join : public propagator_block<single_link_registry<ITarget<std::vector<_Type>>>, multi_link_registry<ISource<_Type>>>;


The payload type of the messages joined and propagated by the block.


The kind of join block this is, either greedy or non_greedy

Public Constructors



join::join Constructor

Overloaded. Constructs a join messaging block.

join::~join Destructor

Destroys the join block.

Protected Methods



join::accept_message Method

Accepts a message that was offered by this join messaging block, transferring ownership to the caller.

join::consume_message Method

Consumes a message previously offered by the join messaging block and reserved by the target, transferring ownership to the caller.

join::link_target_notification Method

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

join::propagate_message Method

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

join::propagate_to_any_targets Method

Constructs an output message containing an input message from each source when they have all propagated a message. Sends this output message out to each of its targets.

join::release_message Method

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

join::reserve_message Method

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

join::resume_propagation Method

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

For more information, see Asynchronous Message Blocks.

Header: agents.h

Namespace: Concurrency

Community Additions

© 2017 Microsoft