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();
+  };
+
 }