Mercurial > hg > orthanc-stone
comparison Platforms/Generic/WebServiceGetCommand.cpp @ 300:b4abaeb783b1 am-callable-and-promise
messaging refactoring almost complete: works fine in native
author | am@osimis.io |
---|---|
date | Tue, 18 Sep 2018 15:23:21 +0200 |
parents | 3897f9f28cfa |
children | 547e1cf7aa7b |
comparison
equal
deleted
inserted
replaced
299:3897f9f28cfa | 300:b4abaeb783b1 |
---|---|
11 * | 11 * |
12 * This program is distributed in the hope that it will be useful, but | 12 * This program is distributed in the hope that it will be useful, but |
13 * WITHOUT ANY WARRANTY; without even the implied warranty of | 13 * WITHOUT ANY WARRANTY; without even the implied warranty of |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 * Affero General Public License for more details. | 15 * Affero General Public License for more details. |
16 * | 16 * |
17 * You should have received a copy of the GNU Affero General Public License | 17 * You should have received a copy of the GNU Affero General Public License |
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. | 18 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
19 **/ | 19 **/ |
20 | 20 |
21 | 21 |
23 | 23 |
24 #include <Core/HttpClient.h> | 24 #include <Core/HttpClient.h> |
25 | 25 |
26 namespace OrthancStone | 26 namespace OrthancStone |
27 { | 27 { |
28 | |
28 WebServiceGetCommand::WebServiceGetCommand(MessageBroker& broker, | 29 WebServiceGetCommand::WebServiceGetCommand(MessageBroker& broker, |
29 IWebService::ICallback& callback, | 30 MessageHandler<IWebService::NewHttpRequestSuccessMessage>* successCallback, // takes ownership |
31 MessageHandler<IWebService::NewHttpRequestErrorMessage>* failureCallback, // takes ownership | |
30 const Orthanc::WebServiceParameters& parameters, | 32 const Orthanc::WebServiceParameters& parameters, |
31 const std::string& uri, | 33 const std::string& uri, |
32 const IWebService::Headers& headers, | 34 const IWebService::Headers& headers, |
33 Orthanc::IDynamicObject* payload /* takes ownership */, | 35 Orthanc::IDynamicObject* payload /* takes ownership */, |
34 NativeStoneApplicationContext& context) : | 36 NativeStoneApplicationContext& context) : |
35 WebServiceCommandBase(broker, callback, parameters, uri, headers, payload, context) | 37 WebServiceCommandBase(broker, successCallback, failureCallback, parameters, uri, headers, payload, context) |
36 { | 38 { |
37 } | 39 } |
38 | 40 |
39 | 41 |
40 void WebServiceGetCommand::Execute() | 42 void WebServiceGetCommand::Execute() |
49 } | 51 } |
50 | 52 |
51 success_ = client.Apply(answer_); | 53 success_ = client.Apply(answer_); |
52 } | 54 } |
53 | 55 |
54 NewWebServiceGetCommand::NewWebServiceGetCommand(MessageBroker& broker, | |
55 MessageHandler<IWebService::NewHttpRequestSuccessMessage>* successCallback, // takes ownership | |
56 MessageHandler<IWebService::NewHttpRequestErrorMessage>* failureCallback, // takes ownership | |
57 const Orthanc::WebServiceParameters& parameters, | |
58 const std::string& uri, | |
59 const IWebService::Headers& headers, | |
60 Orthanc::IDynamicObject* payload /* takes ownership */, | |
61 NativeStoneApplicationContext& context) : | |
62 NewWebServiceCommandBase(broker, successCallback, failureCallback, parameters, uri, headers, payload, context) | |
63 { | |
64 } | |
65 | |
66 | |
67 void NewWebServiceGetCommand::Execute() | |
68 { | |
69 Orthanc::HttpClient client(parameters_, uri_); | |
70 client.SetTimeout(60); | |
71 client.SetMethod(Orthanc::HttpMethod_Get); | |
72 | |
73 for (IWebService::Headers::const_iterator it = headers_.begin(); it != headers_.end(); it++ ) | |
74 { | |
75 client.AddHeader(it->first, it->second); | |
76 } | |
77 | |
78 success_ = client.Apply(answer_); | |
79 } | |
80 | |
81 } | 56 } |