diff Framework/Oracle/GetOrthancWebViewerJpegCommand.cpp @ 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 17660df24c36
children a0a33e5ea5bb
line wrap: on
line diff
--- a/Framework/Oracle/GetOrthancWebViewerJpegCommand.cpp	Wed Nov 06 12:56:23 2019 +0100
+++ b/Framework/Oracle/GetOrthancWebViewerJpegCommand.cpp	Wed Nov 06 15:16:45 2019 +0100
@@ -34,18 +34,6 @@
 
 namespace OrthancStone
 {
-  GetOrthancWebViewerJpegCommand::SuccessMessage::SuccessMessage(const GetOrthancWebViewerJpegCommand& command,
-                                                                 Orthanc::ImageAccessor* image) :   // Takes ownership
-    OriginMessage(command),
-    image_(image)
-  {
-    if (image == NULL)
-    {
-      throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
-    }
-  }
-
-
   GetOrthancWebViewerJpegCommand::GetOrthancWebViewerJpegCommand() :
     frame_(0),
     quality_(95),
@@ -76,7 +64,9 @@
   }
 
 
-  IMessage* GetOrthancWebViewerJpegCommand::ProcessHttpAnswer(const std::string& answer) const
+  void GetOrthancWebViewerJpegCommand::ProcessHttpAnswer(boost::weak_ptr<IObserver> receiver,
+                                                         IMessageEmitter& emitter,
+                                                         const std::string& answer)
   {
     // This code comes from older "OrthancSlicesLoader::ParseSliceImageJpeg()"
       
@@ -147,7 +137,9 @@
       }
       else
       {
-        return new SuccessMessage(*this, reader.release());
+        SuccessMessage message(*this, *reader);
+        emitter.EmitMessage(receiver, message);
+        return;
       }
     }
     
@@ -164,7 +156,9 @@
       }
       else
       {
-        return new SuccessMessage(*this, reader.release());
+        SuccessMessage message(*this, *reader);
+        emitter.EmitMessage(receiver, message);
+        return;
       }
     }
     
@@ -205,6 +199,7 @@
       Orthanc::ImageProcessing::ShiftScale(*image, offset, scaling, true);
     }
 
-    return new SuccessMessage(*this, image.release());
+    SuccessMessage message(*this, *image);
+    emitter.EmitMessage(receiver, message);
   }
 }