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);