See also: multiplexer class reference.

Model of
Description

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

Example

signals::storage<void (float)> one(1.0f), two(2.0f), collector(-1.0f);
signals::multiplexer<void (float)> multiplexer;

one >>= multiplexer.slot<1>();
two >>= multiplexer.slot<2>();

multiplexer >>= collector;

invoke(one);
invoke(two);

BOOST_CHECK_EQUAL(collector.at<0>(), -1.0f);

multiplexer.select(1);
invoke(one);
invoke(two);

BOOST_CHECK_EQUAL(collector.at<0>(), 1.0f);

multiplexer.select(2);
invoke(two);
invoke(one);

BOOST_CHECK_EQUAL(collector.at<0>(), 2.0f);