write_once_node テンプレート・クラス

概要

graph_nodereceiver<Input>sender<Output> のテンプレート・クラス。 write_once_node は、上書きできない 1 つの項目のバッファーを表します。 ノードに対する最初の操作で値が設定されます。値が明示的にクリアされた後に、新しい値が設定されます。 ノードから取得した値は破棄されません。

後続 (successor) がメッセージを拒否した場合、メッセージ・パッシング・プロトコルを使用して処理されます (詳細は、以下のリンクを参照)。

T は、コピー構築可能および代入可能でなければなりません。

構文

template < typename T > class write_once_node;

ヘッダー

#include "tbb/flow_graph.h"

メンバー

namespace tbb {
namespace flow {
 
template< typename T >
class write_once_node :
  public graph_node, public receiver<T>,
  public sender<T> {
public:
    write_once_node( graph &g );
    write_once_node( const write_once_node &src );
 
    // receiver<T>
    typedef T input_type;
    typedef sender<input_type> predecessor_type;
    bool try_put( const input_type &v );
    bool register_predecessor( predecessor_type &p );
    bool remove_predecessor( predecessor_type &p );
 
    // sender<T>
    typedef T output_type;
    typedef receiver<output_type> successor_type;
    bool register_successor( successor_type &r );
    bool remove_successor( successor_type &r );
    bool try_get( output_type &v );
    bool try_reserve( output_type &v );
    bool try_release( );
    bool try_consume( );
 
    bool is_valid( );
    void clear( );
};
 
}
}
次の表は、このテンプレート・クラスのメンバーの詳細な情報を提供します。
メンバー 説明
write_once_node( graph &g )

無効な内部バッファー項目を含む graph g に属する write_once_node 型のオブジェクトを構築します。

write_once_node( const write_once_node &src )

無効な内部バッファー項目を含む write_once_node 型のオブジェクトを構築します。 バッファーに格納される値と後続のリストは src からコピーされません。

bool try_put( const input_type &v )

内部の 1 項目のバッファーに有効な値が含まれていない場合、v を格納します。 新しい値が設定された場合、すべての後続で try_put(v) を呼び出します。

戻り値: true

bool register_predecessor( predecessor_type &p )

値を拒否しないため、先行 (predecessor) のリストを維持する必要はありません。

戻り値: false

bool remove_predecessor( predecessor_type &p )

値を拒否しないため、先行のリストを維持する必要はありません。

戻り値: false

bool register_successor( successor_type &r )

後続のセットに r を追加します。 バッファーに有効な項目 v が格納されている場合、r.try_put(v) を呼び出すタスクがキューに入れられます。

戻り値: true

bool remove_successor( successor_type &r )

後続のセットから r を削除します。

戻り値: true

bool try_get( output_type &v )

内部バッファーが有効な場合、値を v に代入します。

戻り値: v が代入された場合は truev が代入されなかった場合は false

bool try_reserve( output_type &v )

予約をサポートしません。

戻り値: false

bool try_release( )

予約をサポートしません。

戻り値: false

bool try_consume( )

予約をサポートしません。

戻り値: false

bool is_valid( )

戻り値: バッファーが有効な値を保持している場合は true。その他の場合は false

void clear( )

バッファーで保持されている値を無効にします。

関連情報