comparison 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
comparison
equal deleted inserted replaced
1133:0e3a3be313fd 1134:87fbeb823375
19 **/ 19 **/
20 20
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "../Messages/IMessage.h" 24 #include "../Messages/IMessageEmitter.h"
25 #include "OracleCommandBase.h" 25 #include "OracleCommandBase.h"
26 26
27 #include <Core/Images/ImageAccessor.h> 27 #include <Core/Images/ImageAccessor.h>
28 28
29 #include <map> 29 #include <map>
33 class GetOrthancImageCommand : public OracleCommandBase 33 class GetOrthancImageCommand : public OracleCommandBase
34 { 34 {
35 public: 35 public:
36 typedef std::map<std::string, std::string> HttpHeaders; 36 typedef std::map<std::string, std::string> HttpHeaders;
37 37
38 class SuccessMessage : public OriginMessage<GetOrthancImageCommand> 38 class SuccessMessage : public OracleMessageBase
39 { 39 {
40 ORTHANC_STONE_MESSAGE(__FILE__, __LINE__); 40 ORTHANC_STONE_MESSAGE(__FILE__, __LINE__);
41 41
42 private: 42 private:
43 std::auto_ptr<Orthanc::ImageAccessor> image_; 43 const Orthanc::ImageAccessor& image_;
44 Orthanc::MimeType mime_; 44 Orthanc::MimeType mime_;
45 45
46 public: 46 public:
47 SuccessMessage(const GetOrthancImageCommand& command, 47 SuccessMessage(GetOrthancImageCommand& command,
48 Orthanc::ImageAccessor* image, // Takes ownership 48 const Orthanc::ImageAccessor& image,
49 Orthanc::MimeType mime); 49 Orthanc::MimeType mime) :
50 OracleMessageBase(command),
51 image_(image),
52 mime_(mime)
53 {
54 }
50 55
51 const Orthanc::ImageAccessor& GetImage() const 56 const Orthanc::ImageAccessor& GetImage() const
52 { 57 {
53 return *image_; 58 return image_;
54 } 59 }
55 60
56 Orthanc::MimeType GetMimeType() const 61 Orthanc::MimeType GetMimeType() const
57 { 62 {
58 return mime_; 63 return mime_;
109 unsigned int GetTimeout() const 114 unsigned int GetTimeout() const
110 { 115 {
111 return timeout_; 116 return timeout_;
112 } 117 }
113 118
114 IMessage* ProcessHttpAnswer(const std::string& answer, 119 void ProcessHttpAnswer(boost::weak_ptr<IObserver> receiver,
115 const HttpHeaders& answerHeaders) const; 120 IMessageEmitter& emitter,
121 const std::string& answer,
122 const HttpHeaders& answerHeaders);
116 }; 123 };
117 } 124 }