• 2021.4
  • 09/27/2021
  • Public Content
Contents

Type-specified message keys for join_node

To enable this feature, define the
TBB_PREVIEW_FLOW_GRAPH_FEATURES
macro to 1.

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.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.