Mercurial > hg > orthanc-stone
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); } }