The disconnect_all
function can be used to disconnect all SignalConsumers
from a SignalProducer
(or from the default SignalProducer
of a component).
Here is an example:
signals::storage<void ()> banger; // counter will count the number of signals it receives signals::counter<void ()> counter; connect(banger, counter); banger(); // this signal will pass to counter BOOST_CHECK_EQUAL(counter.count(), 1); disconnect_all(banger); banger(); // this signal will not pass to counter BOOST_CHECK_EQUAL(counter.count(), 1); signals::connection c = connect(banger, counter); banger(); // this signal will pass to counter BOOST_CHECK_EQUAL(counter.count(), 2); c.disconnect(); banger(); // this signal will not pass to counter BOOST_CHECK_EQUAL(counter.count(), 2);