Mercurial > hg > orthanc-stone
diff Framework/Oracle/GetOrthancImageCommand.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/GetOrthancImageCommand.h Wed Nov 06 12:56:23 2019 +0100 +++ b/Framework/Oracle/GetOrthancImageCommand.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,22 +35,27 @@ public: typedef std::map<std::string, std::string> HttpHeaders; - class SuccessMessage : public OriginMessage<GetOrthancImageCommand> + class SuccessMessage : public OracleMessageBase { ORTHANC_STONE_MESSAGE(__FILE__, __LINE__); private: - std::auto_ptr<Orthanc::ImageAccessor> image_; - Orthanc::MimeType mime_; + const Orthanc::ImageAccessor& image_; + Orthanc::MimeType mime_; public: - SuccessMessage(const GetOrthancImageCommand& command, - Orthanc::ImageAccessor* image, // Takes ownership - Orthanc::MimeType mime); + SuccessMessage(GetOrthancImageCommand& command, + const Orthanc::ImageAccessor& image, + Orthanc::MimeType mime) : + OracleMessageBase(command), + image_(image), + mime_(mime) + { + } const Orthanc::ImageAccessor& GetImage() const { - return *image_; + return image_; } Orthanc::MimeType GetMimeType() const @@ -111,7 +116,9 @@ return timeout_; } - IMessage* ProcessHttpAnswer(const std::string& answer, - const HttpHeaders& answerHeaders) const; + void ProcessHttpAnswer(boost::weak_ptr<IObserver> receiver, + IMessageEmitter& emitter, + const std::string& answer, + const HttpHeaders& answerHeaders); }; }