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 }