次の方法で共有


choice クラス

choice メッセージング ブロックは、複数のソースと単一のターゲットを持つブロックであり、一連のソースとの制御フローの相互作用を表します。 choice ブロックは、複数のソースのいずれかがメッセージを生成するのを待ち、そのメッセージを生成したソースのインデックスを伝達します。

template<
   class _Type
>
class choice: public ISource<size_t>;

パラメーター

  • _Type
    入力ソースのペイロードを表す tuple ベースの型。

メンバー

パブリック typedef

名前

説明

type

_Type の型のエイリアス。

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

名前

説明

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

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

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

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

パブリック メソッド

名前

説明

choice::accept メソッド

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

choice::acquire_ref メソッド

この choice メッセージング ブロックの参照カウントを取得し、削除されるのを防ぎます。

choice::consume メソッド

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

choice::has_value メソッド

この choice メッセージング ブロックが値で初期化されているかどうかをチェックします。

choice::index メソッド

choice メッセージング ブロックによって選択された要素を表す tuple へのインデックスを返します。

choice::link_target メソッド

ターゲット ブロックをこの choice メッセージング ブロックにリンクします。

choice::release メソッド

以前に正常に行われたメッセージの予約を解放します。

choice::release_ref メソッド

この choice メッセージング ブロックの参照カウントを解放します。

choice::reserve メソッド

この choice メッセージング ブロックによって以前に提供されたメッセージを予約します。

choice::unlink_target メソッド

この choice メッセージング ブロックからターゲット ブロックのリンクを解除します。

choice::unlink_targets メソッド

この choice メッセージング ブロックからすべてのターゲットのリンクを解除します (ISource::unlink_targets をオーバーライドします)。

choice::value メソッド

choice メッセージング ブロックによって選択されたインデックスを持つメッセージを取得します。

解説

choice ブロックによって、いずれかの受信メッセージだけが使用されるようになります。

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

継承階層

ISource

choice

必要条件

ヘッダー: agents.h

名前空間: Concurrency

参照

参照

Concurrency 名前空間

join クラス

single_assignment クラス

make_choice 関数

tuple Class