join クラス

join メッセージング ブロックは、単一のターゲットと複数のソースを持つ順序付けられた propagator_block であり、各ソースから、種類が _Type であるメッセージを結合します。

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
    このブロックによって結合および反映されるメッセージのペイロード型。

  • _Jtype
    join ブロックの種類 (greedy または non_greedy)。

メンバー

パブリック コンストラクター

名前

説明

join::join コンストラクター

オーバーロードされます。 join メッセージング ブロックを構築します。

join::~join デストラクター

join ブロックを破棄します。

プロテクト メソッド

名前

説明

join::accept_message メソッド

この join メッセージング ブロックによって提供されたメッセージを受け入れ、所有権を呼び出し元に移譲します。

join::consume_message メソッド

この join メッセージング ブロックによって以前に提供され、ターゲットによって予約されたメッセージを使用して、所有権を呼び出し元に移譲します。

join::link_target_notification メソッド

新しいターゲットがこの join メッセージング ブロックにリンクされたことを通知するコールバックです。

join::propagate_message メソッド

ISource ブロックからこの join メッセージング ブロックにメッセージを非同期に渡します。 このメソッドは、ソース ブロックから呼び出されたときに propagate メソッドによって呼び出されます。

join::propagate_to_any_targets メソッド

すべてのソースによってメッセージが反映されたときに、各ソースからの入力メッセージを含む出力メッセージを作成します。 その後、この出力メッセージを各ターゲットに送信します。

join::release_message メソッド

以前に行われたメッセージの予約を解放します。 (source_block::release_message をオーバーライドします。)

join::reserve_message メソッド

この join メッセージング ブロックによって以前に提供されたメッセージを予約します。 (source_block::reserve_message をオーバーライドします。)

join::resume_propagation メソッド

予約が解放された後で反映を再開します。 (source_block::resume_propagation をオーバーライドします。)

解説

詳細については、「非同期メッセージ ブロック」を参照してください。

継承階層

ISource

source_block

ITarget

propagator_block

join

必要条件

ヘッダー: agents.h

名前空間: Concurrency

参照

参照

Concurrency 名前空間

choice クラス

multitype_join クラス

join_type 列挙体