-// Copyright (C) 2006-2016 CEA/DEN, EDF R&D
+// Copyright (C) 2006-2023 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
DEBTRACE("notifyObserver2 " << event << object );
}
+void Observer::notifyObserverFromClone(Node *originalInstance, const std::string& event, Node *clonedInstanceGeneratingEvent)
+{
+ DEBTRACE("notifyObserverFromClone " << event << originalInstance );
+}
+
Dispatcher* Dispatcher::_singleton = 0;
Dispatcher::~Dispatcher()
}
}
+void Dispatcher::dispatchFromClone(Node *originalInstance, const std::string& event, Node *clonedInstanceGeneratingEvent)
+{
+ std::pair<Node*,std::string> key(originalInstance,event);
+ std::map< std::pair<Node*,std::string> , std::set<Observer*> >::const_iterator it(_observers.find(key));
+ if(it!=_observers.end())
+ {
+ for(std::set<Observer*>::const_iterator iter=(*it).second.begin();iter!=(*it).second.end();iter++)
+ {
+ (*iter)->notifyObserverFromClone(originalInstance,event,clonedInstanceGeneratingEvent);
+ }
+ }
+}
+
void Dispatcher::addObserver(Observer* observer,Node* object, const std::string& event)
{
_observers[std::pair<Node*,std::string>(object,event)].insert(observer);