comparison Framework/Loaders/LoaderStateMachine.cpp @ 977:262a0244e9b2 toa2019090201

Added missing Unregister for objects that register by the broker + logs + guard in FetchContext
author Benjamin Golinvaux <bgo@osimis.io>
date Mon, 02 Sep 2019 17:29:26 +0200
parents e75fd08d6c75
children e713f1a99861 eb28dfe432f7
comparison
equal deleted inserted replaced
976:3abc47e051c8 977:262a0244e9b2
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()"; 139 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::HandleSuccessMessage(). Receiver fingerprint = " << GetFingerprint();
140 if (activeCommands_ <= 0) { 140 if (activeCommands_ <= 0) {
141 LOG(ERROR) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::HandleSuccessMessage : activeCommands_ should be > 0 but is: " << activeCommands_; 141 LOG(ERROR) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::HandleSuccessMessage : activeCommands_ should be > 0 but is: " << activeCommands_;
142 LOG(ERROR) << "LoaderStateMachine(" << std::hex << this << std::dec << ") fingerprint = " << GetFingerprint();
143 } 142 }
144 else { 143 else {
145 activeCommands_--; 144 activeCommands_--;
146 try 145 try
147 { 146 {
160 159
161 LoaderStateMachine::LoaderStateMachine(IOracle& oracle, 160 LoaderStateMachine::LoaderStateMachine(IOracle& oracle,
162 IObservable& oracleObservable) : 161 IObservable& oracleObservable) :
163 IObserver(oracleObservable.GetBroker()), 162 IObserver(oracleObservable.GetBroker()),
164 oracle_(oracle), 163 oracle_(oracle),
164 oracleObservable_(oracleObservable),
165 active_(false), 165 active_(false),
166 simultaneousDownloads_(4), 166 simultaneousDownloads_(4),
167 activeCommands_(0) 167 activeCommands_(0)
168 { 168 {
169 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::LoaderStateMachine()"; 169 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::LoaderStateMachine()";
185 (*this, &LoaderStateMachine::HandleExceptionMessage)); 185 (*this, &LoaderStateMachine::HandleExceptionMessage));
186 } 186 }
187 187
188 LoaderStateMachine::~LoaderStateMachine() 188 LoaderStateMachine::~LoaderStateMachine()
189 { 189 {
190 oracleObservable_.Unregister(this);
190 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::~LoaderStateMachine()"; 191 LOG(TRACE) << "LoaderStateMachine(" << std::hex << this << std::dec << ")::~LoaderStateMachine()";
191 Clear(); 192 Clear();
192 } 193 }
193 194
194 void LoaderStateMachine::SetSimultaneousDownloads(unsigned int count) 195 void LoaderStateMachine::SetSimultaneousDownloads(unsigned int count)