Visible to Intel only — GUID: GUID-4D3B2C87-63D0-4E4D-B277-B95A86A6089F
Visible to Intel only — GUID: GUID-4D3B2C87-63D0-4E4D-B277-B95A86A6089F
Type-specified message keys for join_node
Description
The extension allows a key matching join_node to obtain keys via functions associated with its input types. The extension simplifies the existing approach by removing the need to provide a function object for each input port of join_node.
API
Header
#include "oneapi/tbb/flow_graph.h"
Syntax
The extension adds a special constructor to the join_node interface when the key_matching<typename K, class KHash=tbb_hash_compare> policy is used. The constructor has the following signature:
join_node( graph &g )
When constructed this way, a join_node calls the key_from_message function for each incoming message to obtain the key associated with it. The default implementation of key_from_message is the following
namespace oneapi { namespace tbb { namespace flow { template <typename K, typename T> K key_from_message( const T &t ) { return t.key(); } } } }
T is one of the user-provided types in OutputTuple and is used to construct the join_node, and K is the key type of the node. By default, the key() method defined in the message class will be called. Alternatively, the user can define its own key_from_message function in the same namespace with the message type. This function will be found via C++ argument-dependent lookup and used in place of the default implementation.