diff Framework/Oracle/GetOrthancImageCommand.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/GetOrthancImageCommand.cpp	Wed Nov 06 12:56:23 2019 +0100
+++ b/Framework/Oracle/GetOrthancImageCommand.cpp	Wed Nov 06 15:16:45 2019 +0100
@@ -29,20 +29,6 @@
 
 namespace OrthancStone
 {
-  GetOrthancImageCommand::SuccessMessage::SuccessMessage(const GetOrthancImageCommand& command,
-                                                         Orthanc::ImageAccessor* image,   // Takes ownership
-                                                         Orthanc::MimeType mime) :
-    OriginMessage(command),
-    image_(image),
-    mime_(mime)
-  {
-    if (image == NULL)
-    {
-      throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
-    }
-  }
-
-
   GetOrthancImageCommand::GetOrthancImageCommand() :
     uri_("/"),
     timeout_(600),
@@ -82,8 +68,11 @@
     }
   }
 
-  IMessage* GetOrthancImageCommand::ProcessHttpAnswer(const std::string& answer,
-                                                      const HttpHeaders& answerHeaders) const
+  
+  void GetOrthancImageCommand::ProcessHttpAnswer(boost::weak_ptr<IObserver> receiver,
+                                                 IMessageEmitter& emitter,
+                                                 const std::string& answer,
+                                                 const HttpHeaders& answerHeaders)
   {
     Orthanc::MimeType contentType = Orthanc::MimeType_Binary;
 
@@ -145,6 +134,7 @@
       }
     }
 
-    return new SuccessMessage(*this, image.release(), contentType);
+    SuccessMessage message(*this, *image, contentType);
+    emitter.EmitMessage(receiver, message);
   }
 }