Mercurial > hg > orthanc-stone
diff Platforms/Generic/WebServiceGetCommand.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 | 5470b15f7cf2 |
children |
line wrap: on
line diff
--- a/Platforms/Generic/WebServiceGetCommand.cpp Tue Jun 26 13:55:17 2018 +0200 +++ b/Platforms/Generic/WebServiceGetCommand.cpp Mon Jul 02 12:32:02 2018 +0200 @@ -25,16 +25,18 @@ namespace OrthancStone { - WebServiceGetCommand::WebServiceGetCommand(IWebService::ICallback& callback, - const Orthanc::WebServiceParameters& parameters, + WebServiceGetCommand::WebServiceGetCommand(IWebService::IWebServiceObserver* observer, + boost::shared_ptr<boost::noncopyable> tracker,const Orthanc::WebServiceParameters& parameters, const std::string& uri, Orthanc::IDynamicObject* payload /* takes ownership */) : - callback_(callback), + observer_(observer), parameters_(parameters), uri_(uri), payload_(payload) { - //SignalSuccess.connect(boost::bind(&IWebService::ICallback::NotifySuccess, callback, _1, _2, _3, _4)); + // 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)); } @@ -52,11 +54,10 @@ if (success_) { SignalSuccess(uri_, answer_.c_str(), answer_.size(), payload_.release()); - //callback_.NotifySuccess(uri_, answer_.c_str(), answer_.size(), payload_.release()); } else { - callback_.NotifyError(uri_, payload_.release()); + SignalError(uri_, payload_.release()); } } }