Mercurial > hg > orthanc-stone
comparison Framework/Loaders/LoaderStateMachine.cpp @ 1059:e713f1a99861 broker
replacing MessageBroker by weak_ptr
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 11 Oct 2019 17:08:34 +0200 |
parents | 262a0244e9b2 |
children | 3e8f59cefec6 |
comparison
equal
deleted
inserted
replaced
1058:a36c47487a70 | 1059:e713f1a99861 |
---|---|
134 } | 134 } |
135 | 135 |
136 template <typename T> | 136 template <typename T> |
137 void LoaderStateMachine::HandleSuccessMessage(const T& message) | 137 void LoaderStateMachine::HandleSuccessMessage(const T& message) |
138 { | 138 { |
139 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::HandleSuccessMessage(). Receiver fingerprint = " << GetFingerprint(); | |
140 if (activeCommands_ <= 0) { | 139 if (activeCommands_ <= 0) { |
141 LOG(ERROR) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::HandleSuccessMessage : activeCommands_ should be > 0 but is: " << activeCommands_; | 140 LOG(ERROR) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::HandleSuccessMessage : activeCommands_ should be > 0 but is: " << activeCommands_; |
142 } | 141 } |
143 else { | 142 else { |
144 activeCommands_--; | 143 activeCommands_--; |
157 } | 156 } |
158 | 157 |
159 | 158 |
160 LoaderStateMachine::LoaderStateMachine(IOracle& oracle, | 159 LoaderStateMachine::LoaderStateMachine(IOracle& oracle, |
161 IObservable& oracleObservable) : | 160 IObservable& oracleObservable) : |
162 IObserver(oracleObservable.GetBroker()), | |
163 oracle_(oracle), | 161 oracle_(oracle), |
164 oracleObservable_(oracleObservable), | 162 oracleObservable_(oracleObservable), |
165 active_(false), | 163 active_(false), |
166 simultaneousDownloads_(4), | 164 simultaneousDownloads_(4), |
167 activeCommands_(0) | 165 activeCommands_(0) |
168 { | 166 { |
169 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::LoaderStateMachine()"; | 167 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::LoaderStateMachine()"; |
170 | 168 |
171 oracleObservable.RegisterObserverCallback( | 169 oracleObservable.RegisterObserverCallback( |
172 new Callable<LoaderStateMachine, OrthancRestApiCommand::SuccessMessage> | 170 new Callable<LoaderStateMachine, OrthancRestApiCommand::SuccessMessage> |
173 (*this, &LoaderStateMachine::HandleSuccessMessage)); | 171 (shared_from_this(), &LoaderStateMachine::HandleSuccessMessage)); |
174 | 172 |
175 oracleObservable.RegisterObserverCallback( | 173 oracleObservable.RegisterObserverCallback( |
176 new Callable<LoaderStateMachine, GetOrthancImageCommand::SuccessMessage> | 174 new Callable<LoaderStateMachine, GetOrthancImageCommand::SuccessMessage> |
177 (*this, &LoaderStateMachine::HandleSuccessMessage)); | 175 (shared_from_this(), &LoaderStateMachine::HandleSuccessMessage)); |
178 | 176 |
179 oracleObservable.RegisterObserverCallback( | 177 oracleObservable.RegisterObserverCallback( |
180 new Callable<LoaderStateMachine, GetOrthancWebViewerJpegCommand::SuccessMessage> | 178 new Callable<LoaderStateMachine, GetOrthancWebViewerJpegCommand::SuccessMessage> |
181 (*this, &LoaderStateMachine::HandleSuccessMessage)); | 179 (shared_from_this(), &LoaderStateMachine::HandleSuccessMessage)); |
182 | 180 |
183 oracleObservable.RegisterObserverCallback( | 181 oracleObservable.RegisterObserverCallback( |
184 new Callable<LoaderStateMachine, OracleCommandExceptionMessage> | 182 new Callable<LoaderStateMachine, OracleCommandExceptionMessage> |
185 (*this, &LoaderStateMachine::HandleExceptionMessage)); | 183 (shared_from_this(), &LoaderStateMachine::HandleExceptionMessage)); |
186 } | 184 } |
187 | 185 |
188 LoaderStateMachine::~LoaderStateMachine() | 186 LoaderStateMachine::~LoaderStateMachine() |
189 { | 187 { |
190 oracleObservable_.Unregister(this); | 188 oracleObservable_.Unregister(this); |