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 には、discardingbroadcast-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

参照: