diff Framework/Layers/DicomStructureSetRendererFactory.h @ 128:c993693e9e63 wasm

fix
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 14 Nov 2017 17:26:10 +0100
parents ed0003f6102c
children a823122db53d
line wrap: on
line diff
--- a/Framework/Layers/DicomStructureSetRendererFactory.h	Wed Nov 08 17:53:55 2017 +0100
+++ b/Framework/Layers/DicomStructureSetRendererFactory.h	Tue Nov 14 17:26:10 2017 +0100
@@ -27,13 +27,37 @@
 
 namespace OrthancStone
 {
-  class DicomStructureSetRendererFactory :
-    public LayerSourceBase,
-    private IWebService::ICallback
+  class DicomStructureSetRendererFactory : public LayerSourceBase
   {
   private:
     class Renderer;
     class Operation;
+    
+    class Loader : public IWebService::ICallback
+    {
+    private:
+      DicomStructureSetRendererFactory&  that_;
+
+    public:
+      Loader(DicomStructureSetRendererFactory& that) :
+        that_(that)
+      {
+      }
+
+      virtual void NotifyError(const std::string& uri,
+                               Orthanc::IDynamicObject* payload)
+      {
+        that_.NotifyError(uri, payload);
+      }
+
+      virtual void NotifySuccess(const std::string& uri,
+                                 const void* answer,
+                                 size_t answerSize,
+                                 Orthanc::IDynamicObject* payload)
+      {
+        that_.NotifySuccess(uri, answer, answerSize, payload);
+      }
+    };
 
     virtual void NotifyError(const std::string& uri,
                              Orthanc::IDynamicObject* payload);
@@ -43,12 +67,14 @@
                                size_t answerSize,
                                Orthanc::IDynamicObject* payload);
 
+    Loader                            loader_;
     IWebService&                      orthanc_;
     std::auto_ptr<DicomStructureSet>  structureSet_;
 
   public:
-    DicomStructureSetRendererFactory(IWebService& orthanc,
-                                     const std::string& instance);
+    DicomStructureSetRendererFactory(IWebService& orthanc);
+
+    void ScheduleLoadInstance(const std::string& instance);
 
     virtual bool GetExtent(std::vector<Vector>& points,
                            const CoordinateSystem3D& viewportSlice)