グラフノードの全検索と抽出をサポートするフローグラフのクラスの拡張。
flow::graph では、グラフの構築に register_predecessor と register_successor を使用する方法は古いオプション (非推奨) です。n1.register_successor(n2) が使用されている場合は、make_edge(n1,n2) に置き換えてください。プレビュー機能を有効にするには、make_edge/remove_edge を使ってグラフを構築する必要があります。
#define TBB_PREVIEW_FLOW_GRAPH_FEATURES 1 #include "tbb/flow_graph.h"
graph_node クラスに追加するメソッドはスレッドセーフではありません。これらのメソッドを使用するとき、グラフはアクティブであってはなりません。
graph_node は、次の typedef およびインスタンスごとのメソッドで拡張されます。
namespace tbb { namespace flow { class graph_node { public: typedef implementation-defined predecessor_type; // source_node を除くすべて typedef implementation-defined predecessor_list_type; // source_node を除くすべて typedef implementation-defined successor_type; typedef implementation-defined successor_list_type; size_t predecessor_count(); // source_node を除くすべて size_t successor_count(); void copy_predecessors(predecessor_list_type &pv); // source_node を除くすべて void copy_successors(successor_list_type &sv); void extract( ); }; } }
メンバー | 説明 |
---|---|
predecessor_type |
predecessor_list_type の要素の型を定義します。この型は source_node では定義されません。 |
predecessor_list_type |
copy_predecessors() が返す型を定義します。このクラスは、size()、begin()、end() および定義されたイテレーター型を含みます。この型は source_node では定義されません。 |
successor_type |
successor_list_type の要素の型を定義します。 |
successor_list_type |
copy_successors() が返す型を定義します。このクラスは、size()、begin()、end() および定義されたイテレーター型を含みます。 |
size_t predecessor_count(); |
make_edge() で現在のノードにプレデセッサーとしてアタッチされ、remove_edge() で (あるいは extract() や reset(rf_clear_edges) を呼び出して) 削除されなかったグラフノードの数を返します。このメソッドは source_node では定義されません。 |
size_t successor_count(); |
make_edge() で現在のノードにサクセサーとしてアタッチされ、remove_edge() で (あるいは extract() や reset(rf_clear_edges) を呼び出して) 削除されなかったグラフノードの数を返します。 |
void copy_predecessors(predecessor_list_type &pv); |
ノードのすべてのプレデセッサーへのポインターを含むデータ構造を返します。このメソッドは source_node では定義されません。 |
void copy_successors(successor_list_type &sv); |
ノードのすべてのサクセサーへのポインターを含むデータ構造を返します。 |
void extract( ) |
ノードへのすべてのエッジを削除します。 |