Visible to Intel only — GUID: GUID-943BA03E-CFB2-4B2D-8010-F2465AC28E6E
Visible to Intel only — GUID: GUID-943BA03E-CFB2-4B2D-8010-F2465AC28E6E
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.