Windows Dev Center

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.

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.

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

_Type

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

_Jtype

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

Name

Description

join::join Constructor

Overloaded. Constructs a join messaging block.

join::~join Destructor

Destroys the join block.

Name

Description

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

Show:
© 2015 Microsoft