グラフノードの全検索と抽出をサポートするフローグラフのクラスの拡張。
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( ) |
ノードへのすべてのエッジを削除します。 |