Mercurial > hg > orthanc-stone
diff Framework/Messages/IObservable.cpp @ 428:751fb354149e am-vsol-upgrade
ability to change the scene of the RadiographyWidget
author | am@osimis.io |
---|---|
date | Wed, 28 Nov 2018 10:44:28 +0100 |
parents | 99e31898910e |
children | a750f11892ec |
line wrap: on
line diff
--- a/Framework/Messages/IObservable.cpp Thu Nov 22 23:15:24 2018 +0100 +++ b/Framework/Messages/IObservable.cpp Wed Nov 28 10:44:28 2018 +0100 @@ -64,6 +64,25 @@ callables_[messageType].insert(callable); } + void IObservable::Unregister(IObserver *observer) + { + // delete all callables from this observer + for (Callables::iterator itCallableSet = callables_.begin(); + itCallableSet != callables_.end(); ++itCallableSet) + { + for (std::set<ICallable*>::const_iterator + itCallable = itCallableSet->second.begin(); itCallable != itCallableSet->second.end(); ) + { + if ((*itCallable)->GetObserver() == observer) + { + delete *itCallable; + itCallableSet->second.erase(itCallable++); + } + else + ++itCallable; + } + } + } void IObservable::EmitMessage(const IMessage& message) {