flow::graph のリセットの拡張とノードの抽出

概要

グラフノードの全検索と抽出をサポートするフローグラフのクラスの拡張。

注意

flow::graph では、グラフの構築に register_predecessorregister_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( );
  };
}
}
             
次の表は、tbb::flow::graph_node の新しいメンバーと typedef の詳細情報を示します。
メンバー 説明
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( )

ノードへのすべてのエッジを削除します。

関連情報