split_node
[flow_graph.split_node]
split_node は、受信した std::tuple の各要素を、受信したタプル要素のインデックスと一致する出力ポートに送信します。
// <oneapi/tbb/flow_graph.h> ヘッダーで定義
namespace oneapi {
namespace tbb {
namespace flow {
template < typename TupleType >
class split_node : public graph_node, public receiver<TupleType> {
public:
explicit split_node( graph &g );
split_node( const split_node &other );
~split_node();
bool try_put( const TupleType &v );
using output_ports_type = /*implementation-defined*/ ;
output_ports_type& output_ports();
};
} // namespace flow
} // namespace tbb
} // namespace oneapi要件:
TupleTypeタイプはstd::tupleのインスタンス化でなければなりません。
split_node は receiver<TupleType> であり、sender 出力ポートのタプルを持ちます。各出力ポートは対応するタプル要素タイプで指定されます。このノードは、1 つの入力ポートでタプルを受け取り、タプルの各要素からメッセージを生成して、対応する出力ポートに渡します。
split_node には、discarding と broadcast-push プロパティーがあります。
split_node は無制限に並列化でき、複数の出力ポートで broadcast_node として動作します。
メンバー関数
- explicit split_node(graph &g)
グラフ
gで登録されたsplit_nodeを構築します。
- split_node(const split_node &other)
otherの作成時の状態と同じ初期状態でsplit_nodeを作成します。構築されるsplit_nodeには、otherと同じgraphオブジェクトへの参照が含まれます。otherのプレデセッサーおよびサクセサーはコピーされせん。
- ~split_node()
デストラクター
- bool try_put(const TupleType &v)
受け取ったタプルの各要素を、
split_nodeの出力ポートに接続されているノードにブロードキャストします。vのi番目の要素がi番目の出力ポートにブロードキャストされます。戻り値:
true
- output_ports_type &output_ports()
戻り値: 出力ポートの
std::tupleを返します。
