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_nodereceiver、および 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 と同様です。