# broadcast_node

[flow_graph.broadcast_node]

A node that broadcasts incoming messages to all of its successors.

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

    namespace oneapi {
    namespace tbb {
    namespace flow {

        template< typename T >
        class broadcast_node :
        public graph_node, public receiver<T>, public sender<T> {
        public:
            explicit broadcast_node( graph &g );
            broadcast_node( const broadcast_node &src );

            bool try_put( const T &v );
            bool try_get( T &v );
        };

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

`broadcast_node` is a `graph_node`, `receiver<T>`, and `sender<T>`.

`broadcast_node` has a discarding and broadcast-push properties.

All messages are forwarded immediately to all successors.

## Member functions

explicit broadcast_node(graph &g)

  Constructs an object of type `broadcast_node` that belongs to the graph `g`.

broadcast_node(const broadcast_node &src)

  Constructs an object of type `broadcast_node` that belongs to the same graph `g` as `src`. The list of predecessors and the list of successors are not copied.

bool try_put(const input_type &v)

  Broadcasts `v` to all successors.

  Returns: always returns `true`, even if it was unable to successfully forward the message to any of its successors.

bool try_get(output_type &v)

  Returns: `false`.