diff Framework/Oracle/GetOrthancWebViewerJpegCommand.h @ 1134:87fbeb823375 broker

allocating messages from oracle commands on the stack
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 06 Nov 2019 15:16:45 +0100
parents 8e3763d1736a
children a0a33e5ea5bb
line wrap: on
line diff
--- a/Framework/Oracle/GetOrthancWebViewerJpegCommand.h	Wed Nov 06 12:56:23 2019 +0100
+++ b/Framework/Oracle/GetOrthancWebViewerJpegCommand.h	Wed Nov 06 15:16:45 2019 +0100
@@ -21,7 +21,7 @@
 
 #pragma once
 
-#include "../Messages/IMessage.h"
+#include "../Messages/IMessageEmitter.h"
 #include "OracleCommandBase.h"
 
 #include <Core/Images/ImageAccessor.h>
@@ -35,20 +35,24 @@
   public:
     typedef std::map<std::string, std::string>  HttpHeaders;
 
-    class SuccessMessage : public OriginMessage<GetOrthancWebViewerJpegCommand>
+    class SuccessMessage : public OracleMessageBase
     {
       ORTHANC_STONE_MESSAGE(__FILE__, __LINE__);
       
     private:
-      std::auto_ptr<Orthanc::ImageAccessor>  image_;
+      const Orthanc::ImageAccessor&  image_;
 
     public:
-      SuccessMessage(const GetOrthancWebViewerJpegCommand& command,
-                     Orthanc::ImageAccessor* image);   // Takes ownership
+      SuccessMessage(GetOrthancWebViewerJpegCommand& command,
+                     const Orthanc::ImageAccessor& image) :
+        OracleMessageBase(command),
+        image_(image)
+      {
+      }
 
       const Orthanc::ImageAccessor& GetImage() const
       {
-        return *image_;
+        return image_;
       }
     };
 
@@ -128,6 +132,8 @@
 
     std::string GetUri() const;
 
-    IMessage* ProcessHttpAnswer(const std::string& answer) const;
+    void ProcessHttpAnswer(boost::weak_ptr<IObserver> receiver,
+                           IMessageEmitter& emitter,
+                           const std::string& answer);
   };
 }