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_node
、receiver<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
を返します。