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 }