changeset 2321:715ac1d1225a refactoring

removed IOracleCallback and OldOracleCallback
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 30 Sep 2026 15:35:24 +0200
parents c03b0c89c458
children 5d0300b3dafa
files OrthancStone/Sources/Oracle/GetOrthancImageCommand.cpp OrthancStone/Sources/Oracle/GetOrthancImageCommand.h OrthancStone/Sources/Oracle/GetOrthancWebViewerJpegCommand.cpp OrthancStone/Sources/Oracle/GetOrthancWebViewerJpegCommand.h OrthancStone/Sources/Oracle/OracleCallback.cpp OrthancStone/Sources/Oracle/OracleCallback.h OrthancStone/Sources/Platforms/Native/GenericOracleRunner.cpp OrthancStone/Sources/Platforms/Native/GenericOracleRunner.h OrthancStone/Sources/Platforms/Native/ThreadedOracle.cpp OrthancStone/Sources/Platforms/Native/ThreadedOracle.h OrthancStone/Sources/Platforms/WebAssembly/WebAssemblyOracle.cpp OrthancStone/Sources/Platforms/WebAssembly/WebAssemblyOracle.h
diffstat 12 files changed, 43 insertions(+), 151 deletions(-) [+]
line wrap: on
line diff
--- a/OrthancStone/Sources/Oracle/GetOrthancImageCommand.cpp	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Oracle/GetOrthancImageCommand.cpp	Wed Sep 30 15:35:24 2026 +0200
@@ -96,7 +96,7 @@
   }
 
 
-  void GetOrthancImageCommand::ProcessHttpAnswer(IOracleCallback& callback,
+  void GetOrthancImageCommand::ProcessHttpAnswer(OracleCallback& callback,
                                                  const std::string& answer,
                                                  const HttpHeaders& answerHeaders) const
   {
--- a/OrthancStone/Sources/Oracle/GetOrthancImageCommand.h	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Oracle/GetOrthancImageCommand.h	Wed Sep 30 15:35:24 2026 +0200
@@ -138,7 +138,7 @@
       return timeout_;
     }
 
-    void ProcessHttpAnswer(IOracleCallback& callback,
+    void ProcessHttpAnswer(OracleCallback& callback,
                            const std::string& answer,
                            const HttpHeaders& answerHeaders) const;
   };
--- a/OrthancStone/Sources/Oracle/GetOrthancWebViewerJpegCommand.cpp	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Oracle/GetOrthancWebViewerJpegCommand.cpp	Wed Sep 30 15:35:24 2026 +0200
@@ -77,7 +77,7 @@
   }
 
 
-  void GetOrthancWebViewerJpegCommand::ProcessHttpAnswer(IOracleCallback& callback,
+  void GetOrthancWebViewerJpegCommand::ProcessHttpAnswer(OracleCallback& callback,
                                                          const std::string& answer) const
   {
     // This code comes from older "OrthancSlicesLoader::ParseSliceImageJpeg()"
--- a/OrthancStone/Sources/Oracle/GetOrthancWebViewerJpegCommand.h	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Oracle/GetOrthancWebViewerJpegCommand.h	Wed Sep 30 15:35:24 2026 +0200
@@ -152,7 +152,7 @@
 
     std::string GetUri() const;
 
-    void ProcessHttpAnswer(IOracleCallback& callback,
+    void ProcessHttpAnswer(OracleCallback& callback,
                            const std::string& answer) const;
   };
 }
--- a/OrthancStone/Sources/Oracle/OracleCallback.cpp	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Oracle/OracleCallback.cpp	Wed Sep 30 15:35:24 2026 +0200
@@ -94,74 +94,4 @@
       LOG(ERROR) << "Native exception during NotifyError()";
     }
   }
-
-
-  OldOracleCallback::OldOracleCallback(IOracleCommand* command,
-                                       boost::weak_ptr<IObserver> receiver,
-                                       IMessageEmitter& emitter) :
-    command_(command),
-    receiver_(receiver),
-    emitter_(emitter)
-  {
-    if (command == NULL)
-    {
-      throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
-    }
-  }
-
-
-  void OldOracleCallback::NotifySuccess(IMessage* message /* takes ownership */)
-  {
-    try
-    {
-      std::unique_ptr<IMessage> protection(message);
-      emitter_.EmitMessage(receiver_, *protection);
-    }
-    catch (Orthanc::OrthancException& e)
-    {
-      LOG(ERROR) << "Exception during NotifySuccess(): " << e.What();
-    }
-    catch (...)
-    {
-      LOG(ERROR) << "Native exception during NotifySuccess()";
-    }
-  }
-
-
-  void OldOracleCallback::NotifyError(const Orthanc::OrthancException& error)
-  {
-    try
-    {
-      if (command_.get() == NULL)
-      {
-        throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
-      }
-      else
-      {
-        OracleCommandExceptionMessage message(*command_, error);
-        emitter_.EmitMessage(receiver_, message);
-      }
-    }
-    catch (Orthanc::OrthancException& e)
-    {
-      LOG(ERROR) << "Exception during NotifyError(): " << e.What();
-    }
-    catch (...)
-    {
-      LOG(ERROR) << "Native exception during NotifyError()";
-    }
-  }
-
-
-  const IOracleCommand& OldOracleCallback::GetCommand() const
-  {
-    if (command_.get() == NULL)
-    {
-      throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
-    }
-    else
-    {
-      return *command_;
-    }
-  }
 }
--- a/OrthancStone/Sources/Oracle/OracleCallback.h	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Oracle/OracleCallback.h	Wed Sep 30 15:35:24 2026 +0200
@@ -25,23 +25,10 @@
 
 #include "IEnvironment.h"
 
-#include "../Messages/IMessageEmitter.h"   // TODO Refactoring - Remove this
-
 
 namespace OrthancStone
 {
-  class IOracleCallback : public Orthanc::IDynamicObject  // TODO Refactoring - Remove this
-  {
-  public:
-    virtual void NotifySuccess(IMessage* result) = 0;
-
-    virtual void NotifyError(const Orthanc::OrthancException& error) = 0;
-
-    virtual const IOracleCommand& GetCommand() const = 0;
-  };
-
-
-  class OracleCallback : public IOracleCallback
+  class OracleCallback : public boost::noncopyable
   {
   private:
     IEnvironment&                    environment_;
@@ -53,38 +40,13 @@
                    const boost::shared_ptr<IOracleClient>& client,
                    IOracleCommand* command /* takes ownership */);
 
-    virtual void NotifySuccess(IMessage* result) ORTHANC_OVERRIDE;
+    void NotifySuccess(IMessage* result);
 
-    virtual void NotifyError(const Orthanc::OrthancException& error) ORTHANC_OVERRIDE;
+    void NotifyError(const Orthanc::OrthancException& error);
 
-    virtual const IOracleCommand& GetCommand() const ORTHANC_OVERRIDE  // TODO Refactoring - Remove this
+    const IOracleCommand& GetCommand() const  // TODO Refactoring - Remove this
     {
       return *command_;
     }
   };
-
-
-  class OldOracleCallback : public IOracleCallback  // TODO Refactoring - Remove this
-  {
-  private:
-    std::unique_ptr<IOracleCommand>  command_;
-    boost::weak_ptr<IObserver>       receiver_;
-    IMessageEmitter&                 emitter_;
-
-  public:
-    OldOracleCallback(IOracleCommand* command /* takes ownership */,
-                      boost::weak_ptr<IObserver> receiver,
-                      IMessageEmitter& emitter);
-
-    virtual void NotifySuccess(IMessage* message /* takes ownership */) ORTHANC_OVERRIDE;
-
-    virtual void NotifyError(const Orthanc::OrthancException& error) ORTHANC_OVERRIDE;
-
-    virtual const IOracleCommand& GetCommand() const ORTHANC_OVERRIDE;
-
-    const boost::weak_ptr<IObserver>& GetReceiver() const
-    {
-      return receiver_;
-    }
-  };
 }
--- a/OrthancStone/Sources/Platforms/Native/GenericOracleRunner.cpp	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Platforms/Native/GenericOracleRunner.cpp	Wed Sep 30 15:35:24 2026 +0200
@@ -147,7 +147,7 @@
   }
 
 
-  static void RunInternal(IOracleCallback& callback,
+  static void RunInternal(OracleCallback& callback,
                           const HttpCommand& command)
   {
     std::string answer;
@@ -185,7 +185,7 @@
   }
 
   
-  static void RunInternal(IOracleCallback& callback,
+  static void RunInternal(OracleCallback& callback,
                           const Orthanc::WebServiceParameters& orthanc,
                           const OrthancRestApiCommand& command)
   {
@@ -200,7 +200,7 @@
   }
 
 
-  static void RunInternal(IOracleCallback& callback,
+  static void RunInternal(OracleCallback& callback,
                           const Orthanc::WebServiceParameters& orthanc,
                           const GetOrthancImageCommand& command)
   {
@@ -220,7 +220,7 @@
   }
 
 
-  static void RunInternal(IOracleCallback& callback,
+  static void RunInternal(OracleCallback& callback,
                           const Orthanc::WebServiceParameters& orthanc,
                           const GetOrthancWebViewerJpegCommand& command)
   {
@@ -260,7 +260,7 @@
   }
 
 
-  static void RunInternal(IOracleCallback& callback,
+  static void RunInternal(OracleCallback& callback,
                           const std::string& root,
                           const ReadFileCommand& command)
   {
@@ -346,7 +346,7 @@
 
   
 #if ORTHANC_ENABLE_DCMTK == 1
-  static void RunInternal(IOracleCallback& callback,
+  static void RunInternal(OracleCallback& callback,
                           boost::shared_ptr<ParsedDicomCache> cache,
                           const std::string& root,
                           const ParseDicomFromFileCommand& command)
@@ -391,7 +391,7 @@
   
 
 #if ORTHANC_ENABLE_DCMTK == 1
-  static void RunInternal(IOracleCallback& callback,
+  static void RunInternal(OracleCallback& callback,
                           boost::shared_ptr<ParsedDicomCache> cache,
                           const Orthanc::WebServiceParameters& orthanc,
                           const ParseDicomFromWadoCommand& command)
@@ -446,7 +446,7 @@
 #endif
 
 
-  void GenericOracleRunner::Run(IOracleCallback& callback)
+  void GenericOracleRunner::Run(OracleCallback& callback)
   {
     Orthanc::ErrorCode error = Orthanc::ErrorCode_Success;
     
--- a/OrthancStone/Sources/Platforms/Native/GenericOracleRunner.h	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Platforms/Native/GenericOracleRunner.h	Wed Sep 30 15:35:24 2026 +0200
@@ -64,6 +64,6 @@
     }
 #endif
 
-    void Run(IOracleCallback& callback);
+    void Run(OracleCallback& callback);
   };
 }
--- a/OrthancStone/Sources/Platforms/Native/ThreadedOracle.cpp	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Platforms/Native/ThreadedOracle.cpp	Wed Sep 30 15:35:24 2026 +0200
@@ -37,12 +37,12 @@
   private:
     StoneApplication::Configuration       configuration_;
     std::unique_ptr<GenericOracleRunner>  runner_;
-    std::unique_ptr<IOracleCallback>      callback_;
+    std::unique_ptr<OracleCallback>       callback_;
 
   public:
     GenericRunnable(const StoneApplication::Configuration& configuration,
                     GenericOracleRunner* runner /* takes ownership */,
-                    IOracleCallback* callback /* takes ownership */) :
+                    OracleCallback* callback /* takes ownership */) :
       configuration_(configuration),
       runner_(runner),
       callback_(callback)
@@ -67,11 +67,11 @@
     class Item : public boost::noncopyable
     {
     private:
-      std::unique_ptr<IOracleCallback>  callback_;
-      boost::posix_time::ptime          expiration_;
+      std::unique_ptr<OracleCallback>  callback_;
+      boost::posix_time::ptime         expiration_;
 
     public:
-      Item(IOracleCallback* callback,
+      Item(OracleCallback* callback,
            unsigned int delay) :
         callback_(callback)
       {
@@ -89,7 +89,7 @@
         return expiration_;
       }
 
-      IOracleCallback& GetCallback()
+      OracleCallback& GetCallback()
       {
         return *callback_;
       }
@@ -113,7 +113,7 @@
     }
 
 
-    void Add(IOracleCallback* callback,
+    void Add(OracleCallback* callback,
              unsigned int delay)
     {
       boost::mutex::scoped_lock lock(mutex_);
@@ -186,9 +186,9 @@
   }
 
 
-  void ThreadedOracle::SubmitInternal(IOracleCallback* callback /* takes ownership */)
+  void ThreadedOracle::SubmitInternal(OracleCallback* callback /* takes ownership */)
   {
-    std::unique_ptr<IOracleCallback> protection(callback);
+    std::unique_ptr<OracleCallback> protection(callback);
 
     if (callback == NULL)
     {
--- a/OrthancStone/Sources/Platforms/Native/ThreadedOracle.h	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Platforms/Native/ThreadedOracle.h	Wed Sep 30 15:35:24 2026 +0200
@@ -67,7 +67,7 @@
     boost::shared_ptr<ParsedDicomCache>  dicomCache_;
 #endif
 
-    void SubmitInternal(IOracleCallback* callback /* takes ownership */);
+    void SubmitInternal(OracleCallback* callback /* takes ownership */);
 
   public:
     ThreadedOracle(const StoneApplication::Configuration& configuration);
--- a/OrthancStone/Sources/Platforms/WebAssembly/WebAssemblyOracle.cpp	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Platforms/WebAssembly/WebAssemblyOracle.cpp	Wed Sep 30 15:35:24 2026 +0200
@@ -44,7 +44,7 @@
 {
   static void TimeoutCallback(void *userData)
   {
-    std::unique_ptr<IOracleCallback> callback(reinterpret_cast<IOracleCallback*>(userData));
+    std::unique_ptr<OracleCallback> callback(reinterpret_cast<OracleCallback*>(userData));
 
     const SleepOracleCommand& command = dynamic_cast<const SleepOracleCommand&>(callback->GetCommand());  // TODO Refactoring - Remove this
     callback->NotifySuccess(new SleepOracleCommand::TimeoutMessage(command));
@@ -63,13 +63,13 @@
   class WebAssemblyOracle::FetchContext : public boost::noncopyable
   {
   private:
-    WebAssemblyOracle&                oracle_;  // TODO Refactoring - Remove this
-    std::unique_ptr<IOracleCallback>  callback_;
-    std::string                       expectedContentType_;
+    WebAssemblyOracle&               oracle_;  // TODO Refactoring - Remove this
+    std::unique_ptr<OracleCallback>  callback_;
+    std::string                      expectedContentType_;
 
   public:
     FetchContext(WebAssemblyOracle& oracle,
-                 IOracleCallback* callback /* takes ownership */,
+                 OracleCallback* callback /* takes ownership */,
                  const std::string& expectedContentType) :
       callback_(callback),
       oracle_(oracle),
@@ -239,7 +239,7 @@
   {
   private:
     WebAssemblyOracle&                oracle_;  // TODO Refactoring - Remove this
-    std::unique_ptr<IOracleCallback>  callback_;
+    std::unique_ptr<OracleCallback>   callback_;
     Orthanc::HttpMethod            method_;
     std::string                    url_;
     size_t                         bodySize_;
@@ -263,7 +263,7 @@
 
   public:
     FetchCommand(WebAssemblyOracle& oracle,
-                 IOracleCallback* callback) :
+                 OracleCallback* callback) :
       oracle_(oracle),
       callback_(callback),
       method_(Orthanc::HttpMethod_Get),
@@ -283,7 +283,7 @@
       ClearBody();
     }
 
-    const IOracleCallback& GetCallback() const
+    const OracleCallback& GetCallback() const
     {
       if (callback_.get() == NULL)
       {
@@ -453,7 +453,7 @@
   };
 
 
-  void WebAssemblyOracle::ProcessFetchResult(IOracleCallback& callback,
+  void WebAssemblyOracle::ProcessFetchResult(OracleCallback& callback,
                                              const HttpHeaders& headers,
                                              std::string& answer)
   {
@@ -638,9 +638,9 @@
   }
 
 
-  void WebAssemblyOracle::ExecuteParseDicomFromWadoCommand(IOracleCallback* callback)
+  void WebAssemblyOracle::ExecuteParseDicomFromWadoCommand(OracleCallback* callback)
   {
-    std::unique_ptr<IOracleCallback> protection(callback);
+    std::unique_ptr<OracleCallback> protection(callback);
 
     const ParseDicomFromWadoCommand& command = dynamic_cast<const ParseDicomFromWadoCommand&>(protection->GetCommand());
 
@@ -713,9 +713,9 @@
   }
 
 
-  void WebAssemblyOracle::Submit(IOracleCallback* callback)
+  void WebAssemblyOracle::Submit(OracleCallback* callback)
   {
-    std::unique_ptr<IOracleCallback> protection(callback);
+    std::unique_ptr<OracleCallback> protection(callback);
 
     if (callback == NULL)
     {
--- a/OrthancStone/Sources/Platforms/WebAssembly/WebAssemblyOracle.h	Wed Sep 30 15:26:27 2026 +0200
+++ b/OrthancStone/Sources/Platforms/WebAssembly/WebAssemblyOracle.h	Wed Sep 30 15:35:24 2026 +0200
@@ -71,7 +71,7 @@
     
     void ExecuteGetOrthancWebViewerJpegCommand(FetchCommand& fetch);
     
-    void ExecuteParseDicomFromWadoCommand(IOracleCallback* callback);
+    void ExecuteParseDicomFromWadoCommand(OracleCallback* callback);
 
     StoneApplication::Configuration  configuration_;
 
@@ -79,11 +79,11 @@
     std::unique_ptr<ParsedDicomCache>  dicomCache_;
 #endif
 
-    void ProcessFetchResult(IOracleCallback& callback,
+    void ProcessFetchResult(OracleCallback& callback,
                             const HttpHeaders& headers,
                             std::string& answer);
 
-    void Submit(IOracleCallback* callback);
+    void Submit(OracleCallback* callback);
 
   public:
     WebAssemblyOracle(const StoneApplication::Configuration& configuration);