make_edge#

[flow_graph.make_edge]

A function template for building edges between nodes.

// Defined in header <oneapi/tbb/flow_graph.h>

namespace oneapi {
namespace tbb {
namespace flow {

    template<typename Message>
    inline void make_edge( sender<Message> &p, receiver<Message> &s );

    template< typename MultiOutputNode, typename MultiInputNode >
    inline void make_edge( MultiOutputNode& output, MultiInputNode& input );

    template<typename MultiOutputNode, typename Message>
    inline void make_edge( MultiOutputNode& output, receiver<Message> input );

    template<typename Message, typename MultiInputNode>
    inline void make_edge( sender<Message> output, MultiInputNode& input );

} // namespace flow
} // namespace tbb
} // namespace oneapi

Requirements:

  • The MultiOutputNode type must have a valid MultiOutputNode::output_ports_type qualified-id that denotes a type.

  • The MultiInputNode type must have a valid MultiInputNode::input_ports_type qualified-id that denotes a type.

The common form of make_edge(sender, receiver) creates an edge between provided sender and receiver instances.

Overloads that accept a MultiOutputNode type instance make an edge from port 0 of a multi-output predecessor.

Overloads that accept a MultiInputNode type instance make an edge to port 0 of a multi-input successor.