Mercurial > hg > orthanc-stone
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 } |