buffer_node

[flow_graph.buffer_node]

メッセージの無限バッファーであるノード。メッセージは任意の順番で転送されます。

// <oneapi/tbb/flow_graph.h> ヘッダーで定義
 
namespace oneapi { 
namespace tbb { 
namespace flow { 

    template< typename T> 
    class buffer_node : public graph_node, public receiver<T>, public sender<T> { 
    public: 
        explicit buffer_node( graph &g ); 
        buffer_node( const buffer_node &src ); 
        ~buffer_node(); 

        bool try_put( const T &v ); 
        bool try_get( T &v ); 
    }; 
} // namespace flow 
} // namespace tbb 
} // namespace oneapi

要件:

  • T タイプは、[copyconstructible] の CopyConstructible の要件と、[copyassignable] ISO C++ 標準の CopyAssignable の要件を満たしている必要があります。

buffer_node は、graph_nodereceiver<T>、および sender<T> です。

buffer_node には、バッファリング シングルプッシュ プロパティーがあります。

buffer_node は、メッセージを任意の順番でサクセサーセットの単一サクセサーに転送します。

メンバー関数

explicit buffer_node(graph &g)

グラフ g に属する空の buffer_node を構築します。

explicit buffer_node(const buffer_node &src)

src と同じグラフ g に属する空の buffer_node を構築します。先行および後続へのリンクを含む src の中間状態はコピーされません。

bool try_put(const T &v)

ノードが管理する項目セットに v を追加してサクセサーに転送します。

戻り値: true

bool try_get(T &v)

戻り値: 項目をノードから削除して v に割り当て可能である場合は true を返します。ノードに非予約項目がない場合は false を返します。