Mercurial > hg > orthanc-stone
diff Framework/SmartLoader.cpp @ 334:c34784e5f299 am-2
compatibility fixes
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 18 Oct 2018 09:02:24 +0200 |
parents | 7a364e44fbb4 |
children | 8eb4fe74000f |
line wrap: on
line diff
--- a/Framework/SmartLoader.cpp Wed Oct 17 19:42:56 2018 +0200 +++ b/Framework/SmartLoader.cpp Thu Oct 18 09:02:24 2018 +0200 @@ -30,12 +30,12 @@ namespace OrthancStone { - enum CachedSliceStatus - { - CachedSliceStatus_ScheduledToLoad, - CachedSliceStatus_GeometryLoaded, - CachedSliceStatus_ImageLoaded - }; + enum CachedSliceStatus + { + CachedSliceStatus_ScheduledToLoad, + CachedSliceStatus_GeometryLoaded, + CachedSliceStatus_ImageLoaded + }; class SmartLoader::CachedSlice : public LayerSourceBase { @@ -47,11 +47,14 @@ CachedSliceStatus status_; public: + CachedSlice(MessageBroker& broker) : + LayerSourceBase(broker) + { + } - CachedSlice(MessageBroker& broker) - : LayerSourceBase(broker) - {} - virtual ~CachedSlice() {} + virtual ~CachedSlice() + { + } virtual bool GetExtent(std::vector<Vector>& points, const CoordinateSystem3D& viewportSlice) @@ -97,7 +100,8 @@ }; - SmartLoader::SmartLoader(MessageBroker& broker, OrthancApiClient& orthancApiClient) : + SmartLoader::SmartLoader(MessageBroker& broker, + OrthancApiClient& orthancApiClient) : IObservable(broker), IObserver(broker), imageQuality_(SliceImageQuality_FullPam), @@ -105,7 +109,10 @@ { } - void SmartLoader::SetFrameInWidget(LayerWidget& layerWidget, size_t layerIndex, const std::string& instanceId, unsigned int frame) + void SmartLoader::SetFrameInWidget(LayerWidget& layerWidget, + size_t layerIndex, + const std::string& instanceId, + unsigned int frame) { // TODO: check if this frame has already been loaded or is already being loaded. // - if already loaded: create a "clone" that will emit the GeometryReady/ImageReady messages "immediately" @@ -115,7 +122,7 @@ // in both cases, we must be carefull about objects lifecycle !!! std::auto_ptr<ILayerSource> layerSource; - std::string sliceKeyId = instanceId + ":" + std::to_string(frame); + std::string sliceKeyId = instanceId + ":" + boost::lexical_cast<std::string>(frame); SmartLoader::CachedSlice* cachedSlice = NULL; if (cachedSlices_.find(sliceKeyId) != cachedSlices_.end()) // && cachedSlices_[sliceKeyId]->status_ == CachedSliceStatus_Loaded) @@ -154,7 +161,8 @@ } - void SmartLoader::PreloadSlice(const std::string instanceId, unsigned int frame) + void SmartLoader::PreloadSlice(const std::string instanceId, + unsigned int frame) { // TODO: reactivate -> need to be able to ScheduleLayerLoading in ILayerSource without calling ScheduleLayerCreation return; @@ -166,7 +174,7 @@ boost::shared_ptr<CachedSlice> cachedSlice(new CachedSlice(IObserver::broker_)); cachedSlice->slice_.reset(new Slice(instanceId, frame)); cachedSlice->status_ = CachedSliceStatus_ScheduledToLoad; - std::string sliceKeyId = instanceId + ":" + std::to_string(frame); + std::string sliceKeyId = instanceId + ":" + boost::lexical_cast<std::string>(frame); LOG(WARNING) << "Will preload: " << sliceKeyId; @@ -202,7 +210,8 @@ // save/replace the slice in cache const Slice& slice = source.GetSlice(0); // TODO handle GetSliceCount() - std::string sliceKeyId = slice.GetOrthancInstanceId() + ":" + std::to_string(slice.GetFrame()); + std::string sliceKeyId = (slice.GetOrthancInstanceId() + ":" + + boost::lexical_cast<std::string>(slice.GetFrame())); LOG(WARNING) << "Geometry ready: " << sliceKeyId; @@ -217,13 +226,15 @@ EmitMessage(message); } + void SmartLoader::OnImageReady(const ILayerSource::ImageReadyMessage& message) { OrthancFrameLayerSource& source = dynamic_cast<OrthancFrameLayerSource&>(message.origin_); // save/replace the slice in cache const Slice& slice = source.GetSlice(0); // TODO handle GetSliceCount() ? - std::string sliceKeyId = slice.GetOrthancInstanceId() + ":" + std::to_string(slice.GetFrame()); + std::string sliceKeyId = (slice.GetOrthancInstanceId() + ":" + + boost::lexical_cast<std::string>(slice.GetFrame())); LOG(WARNING) << "Image ready: " << sliceKeyId; @@ -239,11 +250,13 @@ EmitMessage(message); } + void SmartLoader::OnLayerReady(const ILayerSource::LayerReadyMessage& message) { OrthancFrameLayerSource& source = dynamic_cast<OrthancFrameLayerSource&>(message.origin_); const Slice& slice = source.GetSlice(0); // TODO handle GetSliceCount() ? - std::string sliceKeyId = slice.GetOrthancInstanceId() + ":" + std::to_string(slice.GetFrame()); + std::string sliceKeyId = (slice.GetOrthancInstanceId() + ":" + + boost::lexical_cast<std::string>(slice.GetFrame())); LOG(WARNING) << "Layer ready: " << sliceKeyId; @@ -256,5 +269,4 @@ // re-emit original Layer message to observers EmitMessage(message); } - }