Mercurial > hg > orthanc-stone
diff Framework/SmartLoader.h @ 318:3a4ca166fafa am-2
ImageAccessor refactoring + implemented Image Cache in SmartLoader
author | am@osimis.io |
---|---|
date | Mon, 08 Oct 2018 17:10:08 +0200 |
parents | b66d13708f40 |
children | a902a07769d4 |
line wrap: on
line diff
--- a/Framework/SmartLoader.h Fri Oct 05 11:57:36 2018 +0200 +++ b/Framework/SmartLoader.h Mon Oct 08 17:10:08 2018 +0200 @@ -28,8 +28,16 @@ namespace OrthancStone { - class SmartLoader : public IObservable, IObserver + class LayerWidget; + + class SmartLoader : public IObservable, public IObserver { + struct CachedSlice; + + protected: + typedef std::map<std::string, boost::shared_ptr<SmartLoader::CachedSlice>> CachedSlices; + CachedSlices cachedSlices_; + SliceImageQuality imageQuality_; OrthancApiClient& orthancApiClient_; @@ -44,10 +52,15 @@ void SetImageQuality(SliceImageQuality imageQuality) { imageQuality_ = imageQuality; } - ILayerSource* GetFrame(const std::string& instanceId, unsigned int frame); + void SetFrameInWidget(LayerWidget& layerWidget, size_t layerIndex, const std::string& instanceId, unsigned int frame); void GetFirstInstanceIdForSeries(std::string& output, const std::string& seriesId); + private: + void OnLayerGeometryReady(const ILayerSource::GeometryReadyMessage& message); + void OnImageReady(const ILayerSource::ImageReadyMessage& message); + void OnLayerReady(const ILayerSource::LayerReadyMessage& message); + }; }