34 #ifndef DOXYGEN_SHOULD_SKIP_THIS 38 bool BasicSignaler0::hasListener() {
return (!(_connectors.empty())); }
41 void BasicSignaler0::detach(Listener* target) {
42 auto it = std::find_if(
43 _connectors.begin(), _connectors.end(), __find_target(target));
45 while (it != _connectors.end()) {
47 target->detachSignal__(
this);
49 it = _connectors.erase(it);
50 it = std::find_if(it, _connectors.end(), __find_target(target));
55 void BasicSignaler0::_detachFromTarget(Listener* target) {
56 auto it = std::find_if(
57 _connectors.begin(), _connectors.end(), __find_target(target));
59 while (it != _connectors.end()) {
62 it = _connectors.erase(it);
63 it = std::find_if(it, _connectors.end(), __find_target(target));
68 void BasicSignaler0::_duplicateTarget(
const Listener* oldtarget,
69 Listener* newtarget) {
70 auto it = std::find_if(
71 _connectors.begin(), _connectors.end(), __find_target(oldtarget));
73 while (it != _connectors.end()) {
74 _connectors.push_back((*it)->duplicate(newtarget));
77 it = std::find_if(it, _connectors.end(), __find_target(oldtarget));
82 std::function< bool(IConnector0* el) >
84 return [=](IConnector0* el) ->
bool {
return el->target() == l; };
gum is the global namespace for all aGrUM entities
Every class who would catch signal from signaler should derive from Listener.