Mercurial > hg > orthanc-stone
diff 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 |
line wrap: on
line diff
--- a/Platforms/Generic/WebServicePostCommand.cpp Tue Jun 26 13:55:17 2018 +0200 +++ b/Platforms/Generic/WebServicePostCommand.cpp Mon Jul 02 12:32:02 2018 +0200 @@ -25,17 +25,21 @@ namespace OrthancStone { - WebServicePostCommand::WebServicePostCommand(IWebService::ICallback& callback, + WebServicePostCommand::WebServicePostCommand(IWebService::IWebServiceObserver* observer, + boost::shared_ptr<boost::noncopyable> tracker, const Orthanc::WebServiceParameters& parameters, const std::string& uri, const std::string& body, Orthanc::IDynamicObject* payload /* takes ownership */) : - callback_(callback), + observer_(observer), parameters_(parameters), uri_(uri), body_(body), payload_(payload) { + // connect the signals and track the deletion of the observer + SignalSuccess.connect(IWebService::IWebServiceObserver::SignalSuccessType::slot_type(&IWebService::IWebServiceObserver::OnRequestSuccess, observer_, _1, _2, _3, _4).track(tracker)); + SignalError.connect(IWebService::IWebServiceObserver::SignalErrorType::slot_type(&IWebService::IWebServiceObserver::OnRequestError, observer_, _1, _2).track(tracker)); } void WebServicePostCommand::Execute() @@ -51,11 +55,11 @@ { if (success_) { - callback_.NotifySuccess(uri_, answer_.c_str(), answer_.size(), payload_.release()); + SignalSuccess(uri_, answer_.c_str(), answer_.size(), payload_.release()); } else { - callback_.NotifyError(uri_, payload_.release()); + SignalError(uri_, payload_.release()); } } }