diff Framework/Toolbox/OrthancSlicesLoader.h @ 300:b4abaeb783b1 am-callable-and-promise

messaging refactoring almost complete: works fine in native
author am@osimis.io
date Tue, 18 Sep 2018 15:23:21 +0200
parents 3897f9f28cfa
children 3a4ca166fafa
line wrap: on
line diff
--- a/Framework/Toolbox/OrthancSlicesLoader.h	Fri Sep 14 16:44:01 2018 +0200
+++ b/Framework/Toolbox/OrthancSlicesLoader.h	Tue Sep 18 15:23:21 2018 +0200
@@ -26,10 +26,11 @@
 #include "../StoneEnumerations.h"
 #include "../Messages/IObservable.h"
 #include <boost/shared_ptr.hpp>
+#include "OrthancApiClient.h"
 
 namespace OrthancStone
 {
-  class OrthancSlicesLoader : public IObservable
+  class OrthancSlicesLoader : public IObservable, public IObserver
   {
   public:
 
@@ -93,11 +94,8 @@
     };
 
     class Operation;
-    class WebCallback;
 
-    boost::shared_ptr<WebCallback>  webCallback_;  // This is a PImpl pattern
-
-    IWebService&  orthanc_;
+    OrthancApiClient&  orthanc_;
     State         state_;
     SlicesSorter  slices_;
 
@@ -105,34 +103,23 @@
                                  std::auto_ptr<Orthanc::ImageAccessor>& image);
   
     void NotifySliceImageError(const Operation& operation);
-    
-    void ParseSeriesGeometry(const void* answer,
-                             size_t size);
+
+    void OnGeometryError(const OrthancApiClient::HttpErrorMessage& message);
+    void OnSliceImageError(const OrthancApiClient::HttpErrorMessage& message);
 
-    void ParseInstanceGeometry(const std::string& instanceId,
-                               const void* answer,
-                               size_t size);
+    void ParseSeriesGeometry(const OrthancApiClient::JsonResponseReadyMessage& message);
 
-    void ParseFrameGeometry(const std::string& instanceId,
-                            unsigned int frame,
-                            const void* answer,
-                            size_t size);
+    void ParseInstanceGeometry(const OrthancApiClient::JsonResponseReadyMessage& message);
 
-    void ParseSliceImagePng(const Operation& operation,
-                            const void* answer,
-                            size_t size);
+    void ParseFrameGeometry(const OrthancApiClient::JsonResponseReadyMessage& message);
 
-    void ParseSliceImagePam(const Operation& operation,
-                            const void* answer,
-                            size_t size);
+    void ParseSliceImagePng(const OrthancApiClient::BinaryResponseReadyMessage& message);
 
-    void ParseSliceImageJpeg(const Operation& operation,
-                             const void* answer,
-                             size_t size);
+    void ParseSliceImagePam(const OrthancApiClient::BinaryResponseReadyMessage& message);
 
-    void ParseSliceRawImage(const Operation& operation,
-                            const void* answer,
-                            size_t size);
+    void ParseSliceImageJpeg(const OrthancApiClient::JsonResponseReadyMessage& message);
+
+    void ParseSliceRawImage(const OrthancApiClient::BinaryResponseReadyMessage& message);
 
     void ScheduleSliceImagePng(const Slice& slice,
                                size_t index);
@@ -149,7 +136,7 @@
   public:
     OrthancSlicesLoader(MessageBroker& broker,
                         //ISliceLoaderObserver& callback,
-                        IWebService& orthanc);
+                        OrthancApiClient& orthancApi);
 
     void ScheduleLoadSeries(const std::string& seriesId);
 
@@ -170,6 +157,6 @@
     void ScheduleLoadSliceImage(size_t index,
                                 SliceImageQuality requestedQuality);
 
-//    virtual void HandleMessage(IObservable& from, const IMessage& message);
+
   };
 }