次の方法で共有


transformer クラス

transformer メッセージング ブロックは、単一のターゲットと複数のソースを持つ順序付けられた propagator_block であり、1 つの種類のメッセージを複数受け入れ、別の種類のメッセージを無制限に格納することができます。

template<
   class _Input,
   class _Output
>
class transformer : public propagator_block<single_link_registry<ITarget<_Output>>, multi_link_registry<ISource<_Input>>>;

パラメーター

  • _Input
    このバッファーが受け入れるメッセージのペイロード型。

  • _Output
    このバッファーが格納し、外部に転送するメッセージのペイロード型。

メンバー

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

名前

説明

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

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

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

transformer メッセージング ブロックを破棄します。

プロテクト メソッド

名前

説明

transformer::accept_message メソッド

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

transformer::consume_message メソッド

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

transformer::link_target_notification メソッド

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

transformer::propagate_message メソッド

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

transformer::propagate_to_any_targets メソッド

入力メッセージに対してトランスフォーマー関数を実行します。

transformer::release_message メソッド

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

transformer::reserve_message メソッド

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

transformer::resume_propagation メソッド

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

transformer::send_message メソッド

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

transformer::supports_anonymous_source メソッド

supports_anonymous_source のメソッドをこのブロックがリンクされていないソースによって提供されたメッセージを受け取ることができることを示すためにオーバーライドします。オーバーライド (ITarget::supports_anonymous_source)。

解説

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

継承階層

ISource

ITarget

source_block

propagator_block

transformer

必要条件

ヘッダー: agents.h

名前空間: concurrency

参照

関連項目

concurrency 名前空間

call クラス