diff Platforms/Wasm/WasmWebService.cpp @ 309:14ef1227120f am-callable-and-promise

web services: better handling of failures
author am@osimis.io
date Fri, 28 Sep 2018 15:02:43 +0200
parents ed1a4302154f
children aad37d0b6407
line wrap: on
line diff
--- a/Platforms/Wasm/WasmWebService.cpp	Tue Sep 25 15:14:53 2018 +0200
+++ b/Platforms/Wasm/WasmWebService.cpp	Fri Sep 28 15:02:43 2018 +0200
@@ -11,7 +11,8 @@
                                       void* callableFailure,
                                       const char* uri,
                                       const char* headersInJsonString,
-                                      void* payload);
+                                      void* payload,
+                                      unsigned int timeoutInSeconds);
 
   extern void WasmWebService_PostAsync(void* callableSuccess,
                                        void* callableFailure,
@@ -19,7 +20,8 @@
                                        const char* headersInJsonString,
                                        const void* body,
                                        size_t bodySize,
-                                       void* payload);
+                                       void* payload,
+                                       unsigned int timeoutInSeconds);
 
 
   void EMSCRIPTEN_KEEPALIVE WasmWebService_NotifyError(void* failureCallable,
@@ -100,29 +102,31 @@
   }
 
   void WasmWebService::PostAsync(const std::string& relativeUri,
-                           const Headers& headers,
-                           const std::string& body,
-                           Orthanc::IDynamicObject* payload,
-                           MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
-                           MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable)
+                                 const Headers& headers,
+                                 const std::string& body,
+                                 Orthanc::IDynamicObject* payload,
+                                 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
+                                 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable,
+                                 unsigned int timeoutInSeconds)
   {
     std::string uri = baseUri_ + relativeUri;
     std::string headersInJsonString;
     ToJsonString(headersInJsonString, headers);
     WasmWebService_PostAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(),
-                                       body.c_str(), body.size(), payload);
+                                       body.c_str(), body.size(), payload, timeoutInSeconds);
   }
 
    void WasmWebService::GetAsync(const std::string& relativeUri,
-                          const Headers& headers,
-                          Orthanc::IDynamicObject* payload,
-                          MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
-                          MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable)
+                                 const Headers& headers,
+                                 Orthanc::IDynamicObject* payload,
+                                 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
+                                 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable,
+                                 unsigned int timeoutInSeconds)
   {
     std::string uri = baseUri_ + relativeUri;
     std::string headersInJsonString;
     ToJsonString(headersInJsonString, headers);
-    WasmWebService_GetAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), payload);
+    WasmWebService_GetAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), payload, timeoutInSeconds);
   }
 
 }