事前定義ノードタイプ

graph_node クラス、sender クラス、receiver クラスから継承して独自のノードタイプを定義することもできますが、flow_graph.h の事前定義ノードタイプを使用してグラフを作成できます。次の表は、すべての事前定義ノードタイプと説明の一覧です。各ノードの詳細については、デベロッパー・リファレンスを参照してください。

事前定義ノードタイプ 説明
source_node 単一出力のノード。1 つの汎用出力タイプがあります。ユーザーボディーを実行して出力を生成します。ダウンストリームのノードが以前に生成された出力を受け付けた場合、そのボディーが呼び出されます。受け付けない場合、ダウンストリームを受け付けてボディーが再び呼び出されるまで、以前の出力は一時的にバッファーされます。
function_node 出力をすべてのサクセサーにブロードキャストする、単一入力、単一出力のノード。1 つの汎用入力タイプと出力タイプがあります。ユーザーボディーを実行し、制御可能な並列レベルとバッファーポリシーを含みます。1 つの入力につき、1 つの出力が返されます。
continue_node 出力をすべてのサクセサーにブロードキャストする、単一入力、単一出力のノード。1 つ以上の continue_msg 型の入力を要求し、1 つの汎用出力タイプがあります。入力で N continue_msg オブジェクトを受け取るとユーザーボディーを実行します。N は、プレデセッサーの数に、構築時に割り当てられた追加オフセットを加えた値です。
multifunction_node 単一入力、複数出力のノード。1 つの汎用入力タイプと複数の汎用出力タイプがあります。ユーザーボディーを実行し、制御可能な並列レベルとバッファーポリシーを含みます。ボディーは、各出力ポートで 0 以上のメッセージを出力できます。
broadcast_node 受け取った各メッセージをすべてのサクセサーにブロードキャストする、単一入力、単一出力のノード。入力と出力は同じ汎用タイプです。メッセージをバッファーしません。
buffer_nodequeue_nodepriority_queue_node、および sequencer_node メッセージをバッファーして出力を 1 つのサクセサーに送る、単一入力、単一出力のノード。メッセージが送られる順序はノード固有です (デベロッパー・リファレンスを参照)。これらのノードは、すべてのサクセサーではなく 1 つのサクセサーにのみメッセージを送るという点で独特です。
join_node 複数入力、単一出力のノード。複数の汎用入力タイプがあり、出力タイプはこれらの汎用タイプのタプルです。ノードは、各入力ポートから 1 つのメッセージを組み合わせて、すべてのサクセサーにブロードキャストするタプルを作成します。メッセージの組み合わせに使用されるポリシーは、queueing、reserving、または tag_matching から選択します。
split_node 単一入力、複数出力のノード。入力タイプは汎用タイプのタプルで、タプルの各タイプに 1 つの出力ポートがあります。ノードは値のタプルを受け取り、対応する出力ポートにタプルの各要素を出力します。
write_once_nodeoverwrite_node 単一メッセージをバッファーして出力をすべてのサクセサーにブロードキャストする、単一入力、単一出力のノード。ブロードキャストの後、ノードは受け取った最後のメッセージを保持しているため、将来のサクセサーに利用できます。write_once_node は、受け取った最初のメッセージのみ受け付けます。overwrite_node は、すべてのメッセージを受け付け、すべてのサクセサーにブロードキャストして、古い値を新しい値に置換します。
limiter_node 出力をすべてのサクセサーにブロードキャストする、複数入力、単一出力のノード。メイン入力タイプと出力タイプは同じ汎用タイプです。メッセージをブロードキャストするとき、ノードは内部カウンターをインクリメントします。ユーザー定義のしきい値に達すると、それ以上メッセージをブロードキャストしません。さらにメッセージをブロードキャストするには、特別な入力ポートを使用して内部カウンターをデクリメントします。ノードはメッセージをバッファーしません。
indexer_node 出力メッセージをすべてのサクセサーにブロードキャストする、複数入力、単一出力のノード。入力タイプは汎用タイプのリストで、出力タイプは tagged_msg。メッセージは入力にリストされたタイプの 1 つで、タグはメッセージを受け取ったポートを識別します。入力ポートに届いたメッセージは個別にブロードキャストされます。
composite_node 0、1 または複数の入力ポートと出力ポートを含むノード。composite_node はほかのノードのグループをパッケージして接するポートへの参照のタプルを保持します。これにより、composite_node の対応するポートを使用して、これまで composite_node の実際のノードから作成されていたエッジを作成できます。
async_node (preview feature) フローグラフとユーザーまたは別のランタイムによって管理される外部処理の通信を可能にするノード。このノードは汎用タイプのメッセージを受け取り、メッセージを外部処理に渡すためユーザー定義ボディーを呼び出します。外部処理は、特別なインターフェイスを使用して、汎用タイプを返し、async_node のすべてのサクセサーに配置することができます。

関連情報