See also: junction class reference.

Model of
Description

The junction class can be used to bring in multiple signals, and forward them all to the same set of output signals.

Example

signals::storage<void ()> banger1, banger2;
signals::counter<void ()> counter1, counter2;
signals::junction<void ()> junction;

banger1 >>= junction >>= counter1;
banger2 >>= junction >>= counter2;

banger1.send();
banger2.send();

BOOST_CHECK_EQUAL(counter1.count(), 2);
BOOST_CHECK_EQUAL(counter2.count(), 2);

junction.close();
banger1.send();
banger2.send();

BOOST_CHECK_EQUAL(counter1.count(), 2);
BOOST_CHECK_EQUAL(counter2.count(), 2);

junction.open();
banger1.send();
banger2.send();

BOOST_CHECK_EQUAL(counter1.count(), 4);
BOOST_CHECK_EQUAL(counter2.count(), 4);