# HG changeset patch # User Sebastien Jodogne # Date 1571141295 -7200 # Node ID 9d42f89b8c3cff5af187547e733614eded21a583 # Parent af4b9cba905f40d79d5a49559e5a2d32bca8b6dd improved readability diff -r af4b9cba905f -r 9d42f89b8c3c Framework/Loaders/LoaderStateMachine.cpp --- a/Framework/Loaders/LoaderStateMachine.cpp Tue Oct 15 13:46:01 2019 +0200 +++ b/Framework/Loaders/LoaderStateMachine.cpp Tue Oct 15 14:08:15 2019 +0200 @@ -165,17 +165,11 @@ { LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::LoaderStateMachine()"; - oracleObservable.RegisterObserver - (*this, &LoaderStateMachine::HandleSuccessMessage); - - oracleObservable.RegisterObserver - (*this, &LoaderStateMachine::HandleSuccessMessage); - - oracleObservable.RegisterObserver - (*this, &LoaderStateMachine::HandleSuccessMessage); - - oracleObservable.RegisterObserver - (*this, &LoaderStateMachine::HandleExceptionMessage); + // TODO => Move this out of constructor + Register(oracleObservable, &LoaderStateMachine::HandleSuccessMessage); + Register(oracleObservable, &LoaderStateMachine::HandleSuccessMessage); + Register(oracleObservable, &LoaderStateMachine::HandleSuccessMessage); + Register(oracleObservable, &LoaderStateMachine::HandleExceptionMessage); } LoaderStateMachine::~LoaderStateMachine() diff -r af4b9cba905f -r 9d42f89b8c3c Framework/Loaders/OrthancSeriesVolumeProgressiveLoader.cpp --- a/Framework/Loaders/OrthancSeriesVolumeProgressiveLoader.cpp Tue Oct 15 13:46:01 2019 +0200 +++ b/Framework/Loaders/OrthancSeriesVolumeProgressiveLoader.cpp Tue Oct 15 14:08:15 2019 +0200 @@ -428,14 +428,15 @@ sorter_(new BasicFetchingItemsSorter::Factory), volumeImageReadyInHighQuality_(false) { - oracleObservable.RegisterObserver - (*this, &OrthancSeriesVolumeProgressiveLoader::LoadGeometry); - - oracleObservable.RegisterObserver - (*this, &OrthancSeriesVolumeProgressiveLoader::LoadBestQualitySliceContent); - - oracleObservable.RegisterObserver - (*this, &OrthancSeriesVolumeProgressiveLoader::LoadJpegSliceContent); + // TODO => Move this out of constructor + Register + (oracleObservable, &OrthancSeriesVolumeProgressiveLoader::LoadGeometry); + + Register + (oracleObservable, &OrthancSeriesVolumeProgressiveLoader::LoadBestQualitySliceContent); + + Register + (oracleObservable, &OrthancSeriesVolumeProgressiveLoader::LoadJpegSliceContent); } OrthancSeriesVolumeProgressiveLoader::~OrthancSeriesVolumeProgressiveLoader() diff -r af4b9cba905f -r 9d42f89b8c3c Framework/Messages/IObservable.cpp --- a/Framework/Messages/IObservable.cpp Tue Oct 15 13:46:01 2019 +0200 +++ b/Framework/Messages/IObservable.cpp Tue Oct 15 14:08:15 2019 +0200 @@ -56,7 +56,7 @@ } - void IObservable::RegisterObserverCallback(ICallable* callable) + void IObservable::RegisterCallable(ICallable* callable) { if (callable == NULL) { diff -r af4b9cba905f -r 9d42f89b8c3c Framework/Messages/IObservable.h --- a/Framework/Messages/IObservable.h Tue Oct 15 13:46:01 2019 +0200 +++ b/Framework/Messages/IObservable.h Tue Oct 15 14:08:15 2019 +0200 @@ -44,12 +44,12 @@ void EmitMessageInternal(const IObserver* receiver, const IMessage& message); - // Takes ownsership of the callable - void RegisterObserverCallback(ICallable* callable); - public: virtual ~IObservable(); + // Takes ownsership of the callable + void RegisterCallable(ICallable* callable); + // TODO - Remove this? void Unregister(IObserver* observer); @@ -60,13 +60,5 @@ // Takes ownsership void RegisterForwarder(IMessageForwarder* forwarder); - - template - void RegisterObserver(TObserver& observer, - void (TObserver::* MemberMethod) (const TMessage&)) - { - RegisterObserverCallback(new Callable(observer.GetSharedObserver(), MemberMethod)); - } }; } diff -r af4b9cba905f -r 9d42f89b8c3c Framework/Messages/ObserverBase.h --- a/Framework/Messages/ObserverBase.h Tue Oct 15 13:46:01 2019 +0200 +++ b/Framework/Messages/ObserverBase.h Tue Oct 15 14:08:15 2019 +0200 @@ -23,6 +23,7 @@ #include "ICallable.h" #include "IObserver.h" +#include "IObservable.h" #include @@ -54,5 +55,12 @@ { return new Callable(GetSharedObserver(), MemberMethod); } + + template + void Register(IObservable& observable, + void (TObserver::* MemberMethod) (const TMessage&)) + { + observable.RegisterCallable(CreateCallable(MemberMethod)); + } }; } diff -r af4b9cba905f -r 9d42f89b8c3c Framework/Scene2DViewport/MeasureTool.cpp --- a/Framework/Scene2DViewport/MeasureTool.cpp Tue Oct 15 13:46:01 2019 +0200 +++ b/Framework/Scene2DViewport/MeasureTool.cpp Tue Oct 15 14:08:15 2019 +0200 @@ -84,8 +84,8 @@ : controllerW_(controllerW) , enabled_(true) { - GetController()->RegisterObserver - (*this, &MeasureTool::OnSceneTransformChanged); + // TODO => Move this out of constructor + Register(*GetController(), &MeasureTool::OnSceneTransformChanged); }