indexer_node
[flow_graph.indexer_node]
indexer_node
は、入力ポートで受け取ったメッセージをすべての後続 (サクセサー) にブロードキャストします。各ポートで受け取ったメッセージは個別にブロードキャストされます。出力は、タグと値を含むタグ付きメッセージです。タグは、メッセージを受け取った入力ポートを識別します。
// <oneapi/tbb/flow_graph.h> ヘッダーで定義
namespace oneapi {
namespace tbb {
namespace flow {
template<typename T0, typename...TN>
class indexer_node : public graph_node, public sender</*implementation_defined*/> {
public:
indexer_node(graph &g);
indexer_node(const indexer_node &src);
using input_ports_type = /*implementation_defined*/;
input_ports_type &input_ports();
using output_type = tagged_msg<size_t, T0, TN...>;
bool try_get( output_type &v );
};
} // namespace flow
} // namespace tbb
} // namespace oneapi
要件:
T0
タイプおよび TTN
テンプレート・パラメーター・パックのすべてのタイプは、[copyconstructible] ISO C++ 標準の CopyConstructible 要件を満たす必要があります。
indexer_node
は、graph_node
および sender<tagged_msg<size_t, T0, TN...>>
です。これには、対応する入力テンプレート・パラメーター・パック要素で指定される receiver
である入力ポートのタプルが含まれます。異なるタイプの複数の入力レシーバーをサポートしており、受け取ったメッセージをサクセサーにブロードキャストします。join_node
とは異なり、入力ポートで受け取ったメッセージは indexer_node
のすべてのサクセサーに個別にブロードキャストされます。ブロードキャストの前に、メッセージは受け取ったポートのインデックスでタグ付けされます。
indexer_node
には、discarding と broadcast-push プロパティーがあります。
input_port テンプレート関数は、特定の入力ポートへの参照を取得する構文を単純化します。
メンバーのタイプ
input_ports_type
は、入力ポートのstd::tuple
へのエイリアスです。output_type
は、サクセサーに送信されるtagged_msg
タイプのメッセージのエイリアスです。
メンバー関数
- indexer_node(graph &g)
グラフ
g
に属するのindexer_node
を構築します。
- indexer_node(const indexer_node &src)
indexer_node
を構築します。先行リスト、入力ポートにあるメッセージ、後続はコピーされません。
- input_ports_type &input_ports()
戻り値: レシーバーの
std::tuple
。各要素はreceiver<T>
から継承されます。T
はその入力で想定されるメッセージのタイプです。各タプル要素は、他のreceiver<T>
と同様に使用できます。
- bool try_get(output_type &v)
indexer_node
にバッファーは含まれていないため get はサポートされません。戻り値:
false
。
参照: