broadcast_node テンプレート・クラス

概要

着信メッセージをすべてのサクセサーにブロードキャストするノード。

構文

template < typename T > class broadcast_node;

ヘッダー

#include "tbb/flow_graph.h"

説明

broadcast_node は、T 型の着信メッセージをすべてのサクセサーにブロードキャストする graph_nodereceiver<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 が代入された場合は truev が代入されなかった場合は false

bool try_reserve( output_type &v )

戻り値: false

bool try_release( )

戻り値: false

bool try_consume( )

戻り値: false

関連情報