Mercurial > hg > orthanc-stone
comparison Platforms/Generic/WebServicePostCommand.cpp @ 247:3d523c9a8f0d am
trying to use boost::signals2 even more.
author | am@osimis.io |
---|---|
date | Mon, 02 Jul 2018 12:32:02 +0200 |
parents | 5412adf19980 |
children |
comparison
equal
deleted
inserted
replaced
246:5470b15f7cf2 | 247:3d523c9a8f0d |
---|---|
23 | 23 |
24 #include <Core/HttpClient.h> | 24 #include <Core/HttpClient.h> |
25 | 25 |
26 namespace OrthancStone | 26 namespace OrthancStone |
27 { | 27 { |
28 WebServicePostCommand::WebServicePostCommand(IWebService::ICallback& callback, | 28 WebServicePostCommand::WebServicePostCommand(IWebService::IWebServiceObserver* observer, |
29 boost::shared_ptr<boost::noncopyable> tracker, | |
29 const Orthanc::WebServiceParameters& parameters, | 30 const Orthanc::WebServiceParameters& parameters, |
30 const std::string& uri, | 31 const std::string& uri, |
31 const std::string& body, | 32 const std::string& body, |
32 Orthanc::IDynamicObject* payload /* takes ownership */) : | 33 Orthanc::IDynamicObject* payload /* takes ownership */) : |
33 callback_(callback), | 34 observer_(observer), |
34 parameters_(parameters), | 35 parameters_(parameters), |
35 uri_(uri), | 36 uri_(uri), |
36 body_(body), | 37 body_(body), |
37 payload_(payload) | 38 payload_(payload) |
38 { | 39 { |
40 // connect the signals and track the deletion of the observer | |
41 SignalSuccess.connect(IWebService::IWebServiceObserver::SignalSuccessType::slot_type(&IWebService::IWebServiceObserver::OnRequestSuccess, observer_, _1, _2, _3, _4).track(tracker)); | |
42 SignalError.connect(IWebService::IWebServiceObserver::SignalErrorType::slot_type(&IWebService::IWebServiceObserver::OnRequestError, observer_, _1, _2).track(tracker)); | |
39 } | 43 } |
40 | 44 |
41 void WebServicePostCommand::Execute() | 45 void WebServicePostCommand::Execute() |
42 { | 46 { |
43 Orthanc::HttpClient client(parameters_, uri_); | 47 Orthanc::HttpClient client(parameters_, uri_); |
49 | 53 |
50 void WebServicePostCommand::Commit() | 54 void WebServicePostCommand::Commit() |
51 { | 55 { |
52 if (success_) | 56 if (success_) |
53 { | 57 { |
54 callback_.NotifySuccess(uri_, answer_.c_str(), answer_.size(), payload_.release()); | 58 SignalSuccess(uri_, answer_.c_str(), answer_.size(), payload_.release()); |
55 } | 59 } |
56 else | 60 else |
57 { | 61 { |
58 callback_.NotifyError(uri_, payload_.release()); | 62 SignalError(uri_, payload_.release()); |
59 } | 63 } |
60 } | 64 } |
61 } | 65 } |