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。
参照:
