Mercurial > hg > orthanc-stone
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) |