着信メッセージをすべてのサクセサーにブロードキャストするノード。
template < typename T > class broadcast_node;
#include "tbb/flow_graph.h"
broadcast_node は、T 型の着信メッセージをすべてのサクセサーにブロードキャストする graph_node、receiver<T>、sender<T> です。このノードではバッファー処理は行われないため、メッセージはすべてのサクセサーに直ちに転送されます。
サクセサーがメッセージを拒否した場合、「メッセージ・パッシング・プロトコル」で説明されているプロトコルを使用して処理されます。
T は、コピー構築可能および代入可能でなければなりません。
namespace tbb { namespace flow { template< typename T > class broadcast_node : public graph_node, public receiver<T>, public sender<T> { public: broadcast_node( graph &g ); broadcast_node( const broadcast_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( ); }; } }
メンバー | 説明 |
---|---|
broadcast_node( graph &g ) |
graph g に属する broadcast_node 型のオブジェクトを構築します。 |
broadcast_node( const broadcast_node &src ) |
src と同じ graph g に属する broadcast_node 型のオブジェクトを構築します。プレデセッサーのリスト、サクセサーのリスト、バッファーのメッセージはコピーされません。 |
bool try_put( const input_type &v ) |
すべてのサクセサーに v を追加します。 戻り値: メッセージをサクセサーに転送できなかった場合でも常に true。 |
bool register_predecessor( predecessor_type &p ) |
値を拒否しないため、プレデセッサーのリストを維持する必要はありません。 戻り値: false。 |
bool remove_predecessor( predecessor_type &p ) |
値を拒否しないため、プレデセッサーのリストを維持する必要はありません。 戻り値: false。 |
bool register_successor( successor_type &r ) |
サクセサーのセットに r を追加します。 戻り値: true。 |
bool remove_successor( successor_type &r ) |
サクセサーのセットから r を削除します。 戻り値: true。 |
bool try_get( output_type &v ) |
内部バッファーが有効な場合、値を v に代入します。 戻り値: v が代入された場合は true。v が代入されなかった場合は false。 |
bool try_reserve( output_type &v ) |
戻り値: false。 |
bool try_release( ) |
戻り値: false。 |
bool try_consume( ) |
戻り値: false。 |