queue_node
[flow_graph.queue_node]
ノードはメッセージを FIFO (先入れ先出し) 順に転送します。
// <oneapi/tbb/flow_graph.h> ヘッダーで定義
namespace oneapi {
namespace tbb {
namespace flow {
template <typename T >
class queue_node : public graph_node, public receiver<T>, public sender<T> {
public:
explicit queue_node( graph &g );
queue_node( const queue_node &src );
~queue_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 の要件を満たしている必要があります。
queue_node
は、メッセージを FIFO 順でサクセサーセットの単一サクセサーに転送します。
queue_node
は、graph_node
、receiver
、および sender
です。
queue_node
には、バッファリング と シングルプッシュ プロパティーがあります。
メンバー関数
- explicit queue_node(graph &g)
グラフ
g
に属する空のqueue_node
を構築します。
- queue_node(const queue_node &src)
src
と同じグラフg
に属する空のqueue_node
を構築します。先行および後続へのリンクを含むsrc
の中間状態はコピーされません。
- bool try_put(const T &v)
ノードが管理する項目セットに
v
を追加して、最後に追加された項目をサクセサーに転送します。戻り値:
true
。
- bool try_get(T &v)
戻り値: 項目をノードから取得して
v
に割り当て可能である場合はtrue
を返します。queue_node
に項目がない、またはノードが予約されている場合はfalse
を返します。
例
利用シナリオは、メッセージが先入れ先出し (FIFO) 順で渡されることを除いて buffer_node と同様です。