Mercurial > hg > orthanc-stone
comparison Platforms/Generic/WebServiceCommandBase.h @ 299:3897f9f28cfa am-callable-and-promise
backup work in progress: updated messaging framework with ICallable
author | am@osimis.io |
---|---|
date | Fri, 14 Sep 2018 16:44:01 +0200 |
parents | 87376a645ee1 |
children | b4abaeb783b1 |
comparison
equal
deleted
inserted
replaced
298:f58bfb7bbcc9 | 299:3897f9f28cfa |
---|---|
23 | 23 |
24 #include "IOracleCommand.h" | 24 #include "IOracleCommand.h" |
25 | 25 |
26 #include "../../Framework/Toolbox/IWebService.h" | 26 #include "../../Framework/Toolbox/IWebService.h" |
27 #include "../../Framework/Messages/IObservable.h" | 27 #include "../../Framework/Messages/IObservable.h" |
28 #include "../../Framework/Messages/ICallable.h" | |
28 #include "../../Applications/Generic/NativeStoneApplicationContext.h" | 29 #include "../../Applications/Generic/NativeStoneApplicationContext.h" |
29 | 30 |
30 #include <Core/WebServiceParameters.h> | 31 #include <Core/WebServiceParameters.h> |
31 | 32 |
32 #include <memory> | 33 #include <memory> |
56 | 57 |
57 virtual void Execute() = 0; | 58 virtual void Execute() = 0; |
58 | 59 |
59 virtual void Commit(); | 60 virtual void Commit(); |
60 }; | 61 }; |
62 | |
63 class NewWebServiceCommandBase : public IOracleCommand, IObservable | |
64 { | |
65 protected: | |
66 std::auto_ptr<MessageHandler<IWebService::NewHttpRequestSuccessMessage>> successCallback_; | |
67 std::auto_ptr<MessageHandler<IWebService::NewHttpRequestErrorMessage>> failureCallback_; | |
68 Orthanc::WebServiceParameters parameters_; | |
69 std::string uri_; | |
70 std::map<std::string, std::string> headers_; | |
71 std::auto_ptr<Orthanc::IDynamicObject> payload_; | |
72 bool success_; | |
73 std::string answer_; | |
74 NativeStoneApplicationContext& context_; | |
75 | |
76 public: | |
77 NewWebServiceCommandBase(MessageBroker& broker, | |
78 MessageHandler<IWebService::NewHttpRequestSuccessMessage>* successCallback, // takes ownership | |
79 MessageHandler<IWebService::NewHttpRequestErrorMessage>* failureCallback, // takes ownership | |
80 const Orthanc::WebServiceParameters& parameters, | |
81 const std::string& uri, | |
82 const std::map<std::string, std::string>& headers, | |
83 Orthanc::IDynamicObject* payload /* takes ownership */, | |
84 NativeStoneApplicationContext& context); | |
85 | |
86 virtual void Execute() = 0; | |
87 | |
88 virtual void Commit(); | |
89 }; | |
90 | |
61 } | 91 } |