Mercurial > hg > orthanc-stone
diff 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 |
line wrap: on
line diff
--- a/Platforms/Generic/WebServiceCommandBase.h Mon Sep 10 12:22:26 2018 +0200 +++ b/Platforms/Generic/WebServiceCommandBase.h Fri Sep 14 16:44:01 2018 +0200 @@ -25,6 +25,7 @@ #include "../../Framework/Toolbox/IWebService.h" #include "../../Framework/Messages/IObservable.h" +#include "../../Framework/Messages/ICallable.h" #include "../../Applications/Generic/NativeStoneApplicationContext.h" #include <Core/WebServiceParameters.h> @@ -58,4 +59,33 @@ virtual void Commit(); }; + + class NewWebServiceCommandBase : public IOracleCommand, IObservable + { + protected: + std::auto_ptr<MessageHandler<IWebService::NewHttpRequestSuccessMessage>> successCallback_; + std::auto_ptr<MessageHandler<IWebService::NewHttpRequestErrorMessage>> failureCallback_; + Orthanc::WebServiceParameters parameters_; + std::string uri_; + std::map<std::string, std::string> headers_; + std::auto_ptr<Orthanc::IDynamicObject> payload_; + bool success_; + std::string answer_; + NativeStoneApplicationContext& context_; + + public: + NewWebServiceCommandBase(MessageBroker& broker, + MessageHandler<IWebService::NewHttpRequestSuccessMessage>* successCallback, // takes ownership + MessageHandler<IWebService::NewHttpRequestErrorMessage>* failureCallback, // takes ownership + const Orthanc::WebServiceParameters& parameters, + const std::string& uri, + const std::map<std::string, std::string>& headers, + Orthanc::IDynamicObject* payload /* takes ownership */, + NativeStoneApplicationContext& context); + + virtual void Execute() = 0; + + virtual void Commit(); + }; + }