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