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 メッセージング ブロックにリンクされたことを通知するコールバックです。 |
|
ISource ブロックからこの transformer メッセージング ブロックにメッセージを非同期に渡します。 このメソッドは、ソース ブロックから呼び出されたときに propagate メソッドによって呼び出されます。 |
|
入力メッセージに対してトランスフォーマー関数を実行します。 |
|
以前に行われたメッセージの予約を解放します。(source_block::release_message をオーバーライドします。) |
|
この transformer メッセージング ブロックによって以前に提供されたメッセージを予約します。(source_block::reserve_message をオーバーライドします。) |
|
予約が解放された後で反映を再開します。(source_block::resume_propagation をオーバーライドします。) |
|
ISource ブロックからこの transformer メッセージング ブロックにメッセージを同期的に渡します。 このメソッドは、ソース ブロックから呼び出されたときに send メソッドによって呼び出されます。 |
|
supports_anonymous_source のメソッドをこのブロックがリンクされていないソースによって提供されたメッセージを受け取ることができることを示すためにオーバーライドします。オーバーライド (ITarget::supports_anonymous_source)。 |
解説
詳細については、「非同期メッセージ ブロック」を参照してください。
継承階層
transformer
必要条件
ヘッダー: agents.h
名前空間: concurrency