Share via


multitype_join Class

A multitype_join messaging block is a multi-source, single-target messaging block that combines together messages of different types from each of its sources and offers a tuple of the combined messages to its targets.

template<
   typename _Type,
   join_type _Jtype = non_greedy
>
class multitype_join: public ISource<typename _Unwrap<_Type>::type>;

Parameters

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

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

Members

Public Typedefs

Name

Description

type

A type alias for _Type.

Public Constructors

Name

Description

multitype_join::multitype_join Constructor

Overloaded. Constructs a multitype_join messaging block.

multitype_join::~multitype_join Destructor

Destroys the multitype_join messaging block.

Public Methods

Name

Description

multitype_join::accept Method

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

multitype_join::acquire_ref Method

Acquires a reference count on this multitype_join messaging block, to prevent deletion.

multitype_join::consume Method

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

multitype_join::link_target Method

Links a target block to this multitype_join messaging block.

multitype_join::release Method

Releases a previous successful message reservation.

multitype_join::release_ref Method

Releases a reference count on this multiple_join messaging block.

multitype_join::reserve Method

Reserves a message previously offered by this multitype_join messaging block.

multitype_join::unlink_target Method

Unlinks a target block from this multitype_join messaging block.

multitype_join::unlink_targets Method

Unlinks all targets from this multitype_join messaging block. (Overrides ISource::unlink_targets.)

Remarks

For more information, see Asynchronous Message Blocks.

Inheritance Hierarchy

ISource

multitype_join

Requirements

Header: agents.h

Namespace: concurrency

See Also

Reference

concurrency Namespace

choice Class

join Class

join_type Enumeration

make_join Function

make_greedy_join Function

tuple Class