Mercurial > hg > orthanc-stone
comparison Platforms/Generic/WebServicePostCommand.cpp @ 251:192e6e349e69 am-2
first usage of new message system (in SDL only)
author | am@osimis.io |
---|---|
date | Mon, 02 Jul 2018 18:13:46 +0200 |
parents | 5412adf19980 |
children | 9afafb192180 |
comparison
equal
deleted
inserted
replaced
250:5e642859267e | 251:192e6e349e69 |
---|---|
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(MessageBroker& broker, |
29 IWebService::ICallback& callback, | |
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 WebServiceCommandBase(broker, callback, parameters, uri, payload), |
34 parameters_(parameters), | 35 body_(body) |
35 uri_(uri), | |
36 body_(body), | |
37 payload_(payload) | |
38 { | 36 { |
39 } | 37 } |
40 | 38 |
41 void WebServicePostCommand::Execute() | 39 void WebServicePostCommand::Execute() |
42 { | 40 { |
45 client.SetMethod(Orthanc::HttpMethod_Post); | 43 client.SetMethod(Orthanc::HttpMethod_Post); |
46 client.GetBody().swap(body_); | 44 client.GetBody().swap(body_); |
47 success_ = client.Apply(answer_); | 45 success_ = client.Apply(answer_); |
48 } | 46 } |
49 | 47 |
50 void WebServicePostCommand::Commit() | |
51 { | |
52 if (success_) | |
53 { | |
54 callback_.NotifySuccess(uri_, answer_.c_str(), answer_.size(), payload_.release()); | |
55 } | |
56 else | |
57 { | |
58 callback_.NotifyError(uri_, payload_.release()); | |
59 } | |
60 } | |
61 } | 48 } |