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 と同様です。
