Mercurial > hg > orthanc-stone
diff Framework/Toolbox/ObserversRegistry.h @ 91:81f73efd81a1 wasm
cleaning up
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 29 May 2017 11:18:35 +0200 |
parents | 64e60018943f |
children | 2eca030792aa |
line wrap: on
line diff
--- a/Framework/Toolbox/ObserversRegistry.h Mon May 29 11:04:18 2017 +0200 +++ b/Framework/Toolbox/ObserversRegistry.h Mon May 29 11:18:35 2017 +0200 @@ -30,54 +30,27 @@ { template < typename Source, - typename Observer = typename Source::IChangeObserver + typename Observer = typename Source::IObserver > class ObserversRegistry : public boost::noncopyable { private: - struct ChangeFunctor : public boost::noncopyable - { - void operator() (Observer& observer, - const Source& source) - { - observer.NotifyChange(source); - } - }; - typedef std::set<Observer*> Observers; Observers observers_; public: template <typename Functor> - void Notify(const Source* source, + void Notify(const Source& source, Functor& functor) { - if (source == NULL) - { - throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); - } - for (typename Observers::const_iterator observer = observers_.begin(); observer != observers_.end(); ++observer) { - functor(**observer, *source); + functor(**observer, source); } } - template <typename Functor> - void Notify(const Source* source) - { - // Use the default functor - Functor functor; - Notify(source, functor); - } - - void NotifyChange(const Source* source) - { - Notify<ChangeFunctor>(source); - } - void Register(Observer& observer) { observers_.insert(&observer);