flow::graph のノード抽出

概要

グラフノードの全検索と抽出をサポートするフローグラフのクラスの古い拡張 (非推奨)。

これらの拡張は、インテル® TBB 2019 までプレビュー機能として利用可能でしたが、利用者が少ないため非推奨となりました。対応する API を継続して使用するには、TBB_DEPRECATED_FLOW_NODE_EXTRACTION マクロを非ゼロ値に定義します。この機能は、インテル® TBB の将来のバージョンで完全に削除される可能性があることに注意してください。

ヘッダー

#define TBB_DEPRECATED_FLOW_NODE_EXTRACTION 1
#include "tbb/flow_graph.h"
         

グラフノードの追加構文

フローグラフのノードクラスは、追加で次の 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( );
  };
}
}
             

注意

graph_node クラスに追加するメソッドはスレッドセーフではありません。これらのメソッドを使用するとき、グラフはアクティブであってはなりません。

次の表は、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( )

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

関連情報