comparison 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
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 WebServiceGetCommand::WebServiceGetCommand(IWebService::ICallback& callback, 28 WebServiceGetCommand::WebServiceGetCommand(IWebService::IWebServiceObserver* observer,
29 const Orthanc::WebServiceParameters& parameters, 29 boost::shared_ptr<boost::noncopyable> tracker,const Orthanc::WebServiceParameters& parameters,
30 const std::string& uri, 30 const std::string& uri,
31 Orthanc::IDynamicObject* payload /* takes ownership */) : 31 Orthanc::IDynamicObject* payload /* takes ownership */) :
32 callback_(callback), 32 observer_(observer),
33 parameters_(parameters), 33 parameters_(parameters),
34 uri_(uri), 34 uri_(uri),
35 payload_(payload) 35 payload_(payload)
36 { 36 {
37 //SignalSuccess.connect(boost::bind(&IWebService::ICallback::NotifySuccess, callback, _1, _2, _3, _4)); 37 // connect the signals and track the deletion of the observer
38 SignalSuccess.connect(IWebService::IWebServiceObserver::SignalSuccessType::slot_type(&IWebService::IWebServiceObserver::OnRequestSuccess, observer_, _1, _2, _3, _4).track(tracker));
39 SignalError.connect(IWebService::IWebServiceObserver::SignalErrorType::slot_type(&IWebService::IWebServiceObserver::OnRequestError, observer_, _1, _2).track(tracker));
38 } 40 }
39 41
40 42
41 void WebServiceGetCommand::Execute() 43 void WebServiceGetCommand::Execute()
42 { 44 {
50 void WebServiceGetCommand::Commit() 52 void WebServiceGetCommand::Commit()
51 { 53 {
52 if (success_) 54 if (success_)
53 { 55 {
54 SignalSuccess(uri_, answer_.c_str(), answer_.size(), payload_.release()); 56 SignalSuccess(uri_, answer_.c_str(), answer_.size(), payload_.release());
55 //callback_.NotifySuccess(uri_, answer_.c_str(), answer_.size(), payload_.release());
56 } 57 }
57 else 58 else
58 { 59 {
59 callback_.NotifyError(uri_, payload_.release()); 60 SignalError(uri_, payload_.release());
60 } 61 }
61 } 62 }
62 } 63 }