diff UnitTestsSources/UnitTestsMain.cpp @ 70:f73aed014bde wasm

OrthancAsynchronousWebService
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 22 May 2017 21:43:49 +0200
parents 1553b67b24e5
children 30c768873d47
line wrap: on
line diff
--- a/UnitTestsSources/UnitTestsMain.cpp	Mon May 22 20:35:11 2017 +0200
+++ b/UnitTestsSources/UnitTestsMain.cpp	Mon May 22 21:43:49 2017 +0200
@@ -21,6 +21,7 @@
 
 #include "gtest/gtest.h"
 
+#include "../Framework/Toolbox/OrthancAsynchronousWebService.h"
 #include "../Resources/Orthanc/Core/Logging.h"
 #include "../Framework/Toolbox/OrthancSynchronousWebService.h"
 #include "../Framework/Layers/OrthancFrameLayerSource.h"
@@ -32,6 +33,8 @@
 #include "../Framework/Toolbox/DicomFrameConverter.h"
 
 #include <boost/lexical_cast.hpp>
+#include <boost/date_time/posix_time/posix_time.hpp>
+#include <boost/thread/thread.hpp> 
 
 namespace OrthancStone
 {
@@ -399,16 +402,16 @@
       {
       }
 
-      virtual void NotifyGeometryReady(const OrthancSliceLoader& loader) = 0;
+      virtual void NotifyGeometryReady(OrthancSliceLoader& loader) = 0;
 
-      virtual void NotifyGeometryError(const OrthancSliceLoader& loader) = 0;
+      virtual void NotifyGeometryError(OrthancSliceLoader& loader) = 0;
 
-      virtual void NotifySliceImageReady(const OrthancSliceLoader& loader,
+      virtual void NotifySliceImageReady(OrthancSliceLoader& loader,
                                          unsigned int sliceIndex,
                                          const Slice& slice,
                                          Orthanc::ImageAccessor* image) = 0;
 
-      virtual void NotifySliceImageError(const OrthancSliceLoader& loader,
+      virtual void NotifySliceImageError(OrthancSliceLoader& loader,
                                          unsigned int sliceIndex,
                                          const Slice& slice) = 0;
     };
@@ -523,6 +526,8 @@
         }
       }
 
+      state_ = State_GeometryReady;
+
       if (ok)
       {
         LOG(INFO) << "Loaded a series with " << slices_.GetSliceCount() << " slice(s)";
@@ -662,7 +667,6 @@
       {
         case Mode_SeriesGeometry:
           ParseSeriesGeometry(answer, answerSize);
-          state_ = State_GeometryReady;
           break;
 
         case Mode_LoadImage:
@@ -701,26 +705,31 @@
   class Tata : public OrthancSliceLoader::ICallback
   {
   public:
-    virtual void NotifyGeometryReady(const OrthancSliceLoader& loader)
+    virtual void NotifyGeometryReady(OrthancSliceLoader& loader)
     {
-      printf("Done\n");
+      printf(">> %d\n", loader.GetSliceCount());
+
+      for (size_t i = 0; i < loader.GetSliceCount(); i++)
+      {
+        loader.ScheduleLoadSliceImage(i);
+      }
     }
 
-    virtual void NotifyGeometryError(const OrthancSliceLoader& loader)
+    virtual void NotifyGeometryError(OrthancSliceLoader& loader)
     {
       printf("Error\n");
     }
 
-    virtual void NotifySliceImageReady(const OrthancSliceLoader& loader,
+    virtual void NotifySliceImageReady(OrthancSliceLoader& loader,
                                        unsigned int sliceIndex,
                                        const Slice& slice,
                                        Orthanc::ImageAccessor* image)
     {
       std::auto_ptr<Orthanc::ImageAccessor> tmp(image);
-      printf("Slice OK\n");
+      printf("Slice OK %dx%d\n", tmp->GetWidth(), tmp->GetHeight());
     }
 
-    virtual void NotifySliceImageError(const OrthancSliceLoader& loader,
+    virtual void NotifySliceImageError(OrthancSliceLoader& loader,
                                        unsigned int sliceIndex,
                                        const Slice& slice)
     {
@@ -733,15 +742,20 @@
 TEST(Toto, Tutu)
 {
   Orthanc::WebServiceParameters web;
-  OrthancStone::OrthancSynchronousWebService orthanc(web);
+  OrthancStone::OrthancAsynchronousWebService orthanc(web, 4);
+  orthanc.Start();
 
   OrthancStone::Tata tata;
   OrthancStone::OrthancSliceLoader loader(tata, orthanc);
   //loader.ScheduleLoadSeries("c1c4cb95-05e3bd11-8da9f5bb-87278f71-0b2b43f5");
   loader.ScheduleLoadSeries("67f1b334-02c16752-45026e40-a5b60b6b-030ecab5");
 
-  printf(">> %d\n", loader.GetSliceCount());
-  loader.ScheduleLoadSliceImage(31);
+  /*printf(">> %d\n", loader.GetSliceCount());
+    loader.ScheduleLoadSliceImage(31);*/
+
+  boost::this_thread::sleep(boost::posix_time::milliseconds(1000));
+
+  orthanc.Stop();
 }