comparison Framework/Loaders/LoaderStateMachine.cpp @ 1064:af4b9cba905f broker

simplify how observers are regsitered, and how callables are created
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 15 Oct 2019 13:46:01 +0200
parents 3e8f59cefec6
children 9d42f89b8c3c
comparison
equal deleted inserted replaced
1063:3e8f59cefec6 1064:af4b9cba905f
157 157
158 158
159 LoaderStateMachine::LoaderStateMachine(IOracle& oracle, 159 LoaderStateMachine::LoaderStateMachine(IOracle& oracle,
160 IObservable& oracleObservable) : 160 IObservable& oracleObservable) :
161 oracle_(oracle), 161 oracle_(oracle),
162 oracleObservable_(oracleObservable),
163 active_(false), 162 active_(false),
164 simultaneousDownloads_(4), 163 simultaneousDownloads_(4),
165 activeCommands_(0) 164 activeCommands_(0)
166 { 165 {
167 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::LoaderStateMachine()"; 166 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::LoaderStateMachine()";
168 167
169 oracleObservable.RegisterObserverCallback( 168 oracleObservable.RegisterObserver<LoaderStateMachine, OrthancRestApiCommand::SuccessMessage>
170 new Callable<LoaderStateMachine, OrthancRestApiCommand::SuccessMessage> 169 (*this, &LoaderStateMachine::HandleSuccessMessage);
171 (shared_from_this(), &LoaderStateMachine::HandleSuccessMessage)); 170
172 171 oracleObservable.RegisterObserver<LoaderStateMachine, GetOrthancImageCommand::SuccessMessage>
173 oracleObservable.RegisterObserverCallback( 172 (*this, &LoaderStateMachine::HandleSuccessMessage);
174 new Callable<LoaderStateMachine, GetOrthancImageCommand::SuccessMessage> 173
175 (shared_from_this(), &LoaderStateMachine::HandleSuccessMessage)); 174 oracleObservable.RegisterObserver<LoaderStateMachine, GetOrthancWebViewerJpegCommand::SuccessMessage>
176 175 (*this, &LoaderStateMachine::HandleSuccessMessage);
177 oracleObservable.RegisterObserverCallback( 176
178 new Callable<LoaderStateMachine, GetOrthancWebViewerJpegCommand::SuccessMessage> 177 oracleObservable.RegisterObserver<LoaderStateMachine, OracleCommandExceptionMessage>
179 (shared_from_this(), &LoaderStateMachine::HandleSuccessMessage)); 178 (*this, &LoaderStateMachine::HandleExceptionMessage);
180
181 oracleObservable.RegisterObserverCallback(
182 new Callable<LoaderStateMachine, OracleCommandExceptionMessage>
183 (shared_from_this(), &LoaderStateMachine::HandleExceptionMessage));
184 } 179 }
185 180
186 LoaderStateMachine::~LoaderStateMachine() 181 LoaderStateMachine::~LoaderStateMachine()
187 { 182 {
188 oracleObservable_.Unregister(this);
189 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::~LoaderStateMachine()"; 183 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::~LoaderStateMachine()";
190 Clear(); 184 Clear();
191 } 185 }
192 186
193 void LoaderStateMachine::SetSimultaneousDownloads(unsigned int count) 187 void LoaderStateMachine::SetSimultaneousDownloads(unsigned int count)