comparison Framework/SmartLoader.cpp @ 393:e7a494bdd956

removed Messages/MessageType.h
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 09 Nov 2018 18:30:30 +0100
parents 20f149669c1f
children 5f13809f3f76
comparison
equal deleted inserted replaced
392:d87fe075d31b 393:e7a494bdd956
103 } 103 }
104 } 104 }
105 105
106 CachedSlice* Clone() const 106 CachedSlice* Clone() const
107 { 107 {
108 CachedSlice* output = new CachedSlice(broker_); 108 CachedSlice* output = new CachedSlice(GetBroker());
109 output->sliceIndex_ = sliceIndex_; 109 output->sliceIndex_ = sliceIndex_;
110 output->slice_.reset(slice_->Clone()); 110 output->slice_.reset(slice_->Clone());
111 output->image_ = image_; 111 output->image_ = image_;
112 output->effectiveQuality_ = effectiveQuality_; 112 output->effectiveQuality_ = effectiveQuality_;
113 output->status_ = status_; 113 output->status_ = status_;
148 layerSource.reset(cachedSlices_[sliceKeyId]->Clone()); 148 layerSource.reset(cachedSlices_[sliceKeyId]->Clone());
149 cachedSlice = dynamic_cast<SmartLoader::CachedSlice*>(layerSource.get()); 149 cachedSlice = dynamic_cast<SmartLoader::CachedSlice*>(layerSource.get());
150 } 150 }
151 else 151 else
152 { 152 {
153 layerSource.reset(new OrthancFrameLayerSource(IObserver::broker_, orthancApiClient_)); 153 layerSource.reset(new OrthancFrameLayerSource(IObserver::GetBroker(), orthancApiClient_));
154 dynamic_cast<OrthancFrameLayerSource*>(layerSource.get())->SetImageQuality(imageQuality_); 154 dynamic_cast<OrthancFrameLayerSource*>(layerSource.get())->SetImageQuality(imageQuality_);
155 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::GeometryReadyMessage>(*this, &SmartLoader::OnLayerGeometryReady)); 155 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::GeometryReadyMessage>(*this, &SmartLoader::OnLayerGeometryReady));
156 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::ImageReadyMessage>(*this, &SmartLoader::OnImageReady)); 156 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::ImageReadyMessage>(*this, &SmartLoader::OnImageReady));
157 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::LayerReadyMessage>(*this, &SmartLoader::OnLayerReady)); 157 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::LayerReadyMessage>(*this, &SmartLoader::OnLayerReady));
158 dynamic_cast<OrthancFrameLayerSource*>(layerSource.get())->LoadFrame(instanceId, frame); 158 dynamic_cast<OrthancFrameLayerSource*>(layerSource.get())->LoadFrame(instanceId, frame);
187 // TODO: check if it is already in the cache 187 // TODO: check if it is already in the cache
188 188
189 189
190 190
191 // create the slice in the cache with "empty" data 191 // create the slice in the cache with "empty" data
192 boost::shared_ptr<CachedSlice> cachedSlice(new CachedSlice(IObserver::broker_)); 192 boost::shared_ptr<CachedSlice> cachedSlice(new CachedSlice(IObserver::GetBroker()));
193 cachedSlice->slice_.reset(new Slice(instanceId, frame)); 193 cachedSlice->slice_.reset(new Slice(instanceId, frame));
194 cachedSlice->status_ = CachedSliceStatus_ScheduledToLoad; 194 cachedSlice->status_ = CachedSliceStatus_ScheduledToLoad;
195 std::string sliceKeyId = instanceId + ":" + boost::lexical_cast<std::string>(frame); 195 std::string sliceKeyId = instanceId + ":" + boost::lexical_cast<std::string>(frame);
196 196
197 LOG(WARNING) << "Will preload: " << sliceKeyId; 197 LOG(WARNING) << "Will preload: " << sliceKeyId;
198 198
199 cachedSlices_[sliceKeyId] = boost::shared_ptr<CachedSlice>(cachedSlice); 199 cachedSlices_[sliceKeyId] = boost::shared_ptr<CachedSlice>(cachedSlice);
200 200
201 std::auto_ptr<ILayerSource> layerSource(new OrthancFrameLayerSource(IObserver::broker_, orthancApiClient_)); 201 std::auto_ptr<ILayerSource> layerSource(new OrthancFrameLayerSource(IObserver::GetBroker(), orthancApiClient_));
202 202
203 dynamic_cast<OrthancFrameLayerSource*>(layerSource.get())->SetImageQuality(imageQuality_); 203 dynamic_cast<OrthancFrameLayerSource*>(layerSource.get())->SetImageQuality(imageQuality_);
204 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::GeometryReadyMessage>(*this, &SmartLoader::OnLayerGeometryReady)); 204 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::GeometryReadyMessage>(*this, &SmartLoader::OnLayerGeometryReady));
205 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::ImageReadyMessage>(*this, &SmartLoader::OnImageReady)); 205 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::ImageReadyMessage>(*this, &SmartLoader::OnImageReady));
206 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::LayerReadyMessage>(*this, &SmartLoader::OnLayerReady)); 206 layerSource->RegisterObserverCallback(new Callable<SmartLoader, ILayerSource::LayerReadyMessage>(*this, &SmartLoader::OnLayerReady));
231 std::string sliceKeyId = (slice.GetOrthancInstanceId() + ":" + 231 std::string sliceKeyId = (slice.GetOrthancInstanceId() + ":" +
232 boost::lexical_cast<std::string>(slice.GetFrame())); 232 boost::lexical_cast<std::string>(slice.GetFrame()));
233 233
234 LOG(WARNING) << "Geometry ready: " << sliceKeyId; 234 LOG(WARNING) << "Geometry ready: " << sliceKeyId;
235 235
236 boost::shared_ptr<CachedSlice> cachedSlice(new CachedSlice(IObserver::broker_)); 236 boost::shared_ptr<CachedSlice> cachedSlice(new CachedSlice(IObserver::GetBroker()));
237 cachedSlice->slice_.reset(slice.Clone()); 237 cachedSlice->slice_.reset(slice.Clone());
238 cachedSlice->effectiveQuality_ = source.GetImageQuality(); 238 cachedSlice->effectiveQuality_ = source.GetImageQuality();
239 cachedSlice->status_ = CachedSliceStatus_GeometryLoaded; 239 cachedSlice->status_ = CachedSliceStatus_GeometryLoaded;
240 240
241 cachedSlices_[sliceKeyId] = boost::shared_ptr<CachedSlice>(cachedSlice); 241 cachedSlices_[sliceKeyId] = boost::shared_ptr<CachedSlice>(cachedSlice);
254 std::string sliceKeyId = (slice.GetOrthancInstanceId() + ":" + 254 std::string sliceKeyId = (slice.GetOrthancInstanceId() + ":" +
255 boost::lexical_cast<std::string>(slice.GetFrame())); 255 boost::lexical_cast<std::string>(slice.GetFrame()));
256 256
257 LOG(WARNING) << "Image ready: " << sliceKeyId; 257 LOG(WARNING) << "Image ready: " << sliceKeyId;
258 258
259 boost::shared_ptr<CachedSlice> cachedSlice(new CachedSlice(IObserver::broker_)); 259 boost::shared_ptr<CachedSlice> cachedSlice(new CachedSlice(IObserver::GetBroker()));
260 cachedSlice->image_.reset(Orthanc::Image::Clone(message.GetImage())); 260 cachedSlice->image_.reset(Orthanc::Image::Clone(message.GetImage()));
261 cachedSlice->effectiveQuality_ = message.GetImageQuality(); 261 cachedSlice->effectiveQuality_ = message.GetImageQuality();
262 cachedSlice->slice_.reset(message.GetSlice().Clone()); 262 cachedSlice->slice_.reset(message.GetSlice().Clone());
263 cachedSlice->status_ = CachedSliceStatus_ImageLoaded; 263 cachedSlice->status_ = CachedSliceStatus_ImageLoaded;
264 264