comparison Platforms/Generic/WebServiceCommandBase.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 547e1cf7aa7b
children 8eb4fe74000f
comparison
equal deleted inserted replaced
307:be2660b6e40a 309:14ef1227120f
29 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallback, 29 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallback,
30 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback, 30 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback,
31 const Orthanc::WebServiceParameters& parameters, 31 const Orthanc::WebServiceParameters& parameters,
32 const std::string& uri, 32 const std::string& uri,
33 const IWebService::Headers& headers, 33 const IWebService::Headers& headers,
34 unsigned int timeoutInSeconds,
34 Orthanc::IDynamicObject* payload /* takes ownership */, 35 Orthanc::IDynamicObject* payload /* takes ownership */,
35 NativeStoneApplicationContext& context) : 36 NativeStoneApplicationContext& context) :
36 IObservable(broker), 37 IObservable(broker),
37 successCallback_(successCallback), 38 successCallback_(successCallback),
38 failureCallback_(failureCallback), 39 failureCallback_(failureCallback),
39 parameters_(parameters), 40 parameters_(parameters),
40 uri_(uri), 41 uri_(uri),
41 headers_(headers), 42 headers_(headers),
42 payload_(payload), 43 payload_(payload),
43 context_(context) 44 context_(context),
45 timeoutInSeconds_(timeoutInSeconds)
44 { 46 {
45 } 47 }
46 48
47 49
48 void WebServiceCommandBase::Commit() 50 void WebServiceCommandBase::Commit()
53 { 55 {
54 successCallback_->Apply(IWebService::HttpRequestSuccessMessage(uri_, answer_.c_str(), answer_.size(), payload_.release())); 56 successCallback_->Apply(IWebService::HttpRequestSuccessMessage(uri_, answer_.c_str(), answer_.size(), payload_.release()));
55 } 57 }
56 else if (!success_ && failureCallback_.get() != NULL) 58 else if (!success_ && failureCallback_.get() != NULL)
57 { 59 {
58 successCallback_->Apply(IWebService::HttpRequestErrorMessage(uri_, payload_.release())); 60 failureCallback_->Apply(IWebService::HttpRequestErrorMessage(uri_, payload_.release()));
59 } 61 }
60 62
61 } 63 }
62 64
63 } 65 }