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