56#ifndef DOXYGEN_SHOULD_SKIP_THIS
60 bool BasicSignaler0::hasListener() {
return (!(connectors_.empty())); }
63 void BasicSignaler0::detach(Listener* target) {
64 auto it = std::find_if(connectors_.begin(), connectors_.end(), _find_target_(target));
66 while (it != connectors_.end()) {
68 target->_detachSignal_(
this);
70 it = connectors_.erase(it);
71 it = std::find_if(it, connectors_.end(), _find_target_(target));
76 void BasicSignaler0::detachFromTarget_(Listener* target) {
77 auto it = std::find_if(connectors_.begin(), connectors_.end(), _find_target_(target));
79 while (it != connectors_.end()) {
82 it = connectors_.erase(it);
83 it = std::find_if(it, connectors_.end(), _find_target_(target));
88 void BasicSignaler0::duplicateTarget_(
const Listener* oldtarget, Listener* newtarget) {
89 auto it = std::find_if(connectors_.begin(), connectors_.end(), _find_target_(oldtarget));
91 while (it != connectors_.end()) {
92 connectors_.push_back((*it)->duplicate(newtarget));
95 it = std::find_if(it, connectors_.end(), _find_target_(oldtarget));
100 std::function< bool(IConnector0* el) > BasicSignaler0::_find_target_(
const gum::Listener* l) {
101 return [=](IConnector0* el) ->
bool {
return el->target() == l; };
Internal namespace for aGrUM signaler/listener components.
gum is the global namespace for all aGrUM entities