annotate Framework/Toolbox/OrthancApiClient.h @ 700:059e1fd05fd6 refactor-viewport-controller

Introduced the ViewportController that sits between the application and the Scene2D to handle the trackers and measuring tools. This is a work in progress. The Scene2D is no longer an observable. Message sending is managed by the ViewportController. Move some refs to shared and weak to prevent lifetime issues.
author Benjamin Golinvaux <bgo@osimis.io>
date Sun, 19 May 2019 16:26:17 +0200
parents f0008c55e5f7
children 4f2416d519b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
1 /**
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
2 * Stone of Orthanc
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
4 * Department, University Hospital of Liege, Belgium
439
b70e9be013e4 preparing for 2019
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 417
diff changeset
5 * Copyright (C) 2017-2019 Osimis S.A., Belgium
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
6 *
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
7 * This program is free software: you can redistribute it and/or
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
8 * modify it under the terms of the GNU Affero General Public License
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
9 * as published by the Free Software Foundation, either version 3 of
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
10 * the License, or (at your option) any later version.
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
11 *
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful, but
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
15 * Affero General Public License for more details.
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
16 *
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
17 * You should have received a copy of the GNU Affero General Public License
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
19 **/
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
20
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
21
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
22 #pragma once
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
23
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
24 #include <boost/shared_ptr.hpp>
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
25 #include <json/json.h>
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
26
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
27 #include "IWebService.h"
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
28 #include "../Messages/IObservable.h"
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
29 #include "../Messages/Promise.h"
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
30
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
31 namespace OrthancStone
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
32 {
383
939f626eb6d7 removing converters in OrthancApiClient
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 382
diff changeset
33 class OrthancApiClient :
422
4fe42ae3653a introduced a basic cache at OrthancApiClient level so it can be used with the RadiographyScene
am@osimis.io
parents: 417
diff changeset
34 public IObservable,
4fe42ae3653a introduced a basic cache at OrthancApiClient level so it can be used with the RadiographyScene
am@osimis.io
parents: 417
diff changeset
35 public IObserver
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
36 {
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
37 public:
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 553
diff changeset
38 class JsonResponseReadyMessage : public IMessage
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
39 {
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 553
diff changeset
40 ORTHANC_STONE_MESSAGE(__FILE__, __LINE__);
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 553
diff changeset
41
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
42 private:
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
43 const std::string& uri_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
44 const Json::Value& json_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
45 const Orthanc::IDynamicObject* payload_;
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
46
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
47 public:
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
48 JsonResponseReadyMessage(const std::string& uri,
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
49 const Json::Value& json,
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
50 const Orthanc::IDynamicObject* payload) :
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
51 uri_(uri),
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
52 json_(json),
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
53 payload_(payload)
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
54 {
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
55 }
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
56
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
57 const std::string& GetUri() const
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
58 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
59 return uri_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
60 }
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
61
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
62 const Json::Value& GetJson() const
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
63 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
64 return json_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
65 }
315
aad37d0b6407 Added LayerWidget::RemoveLayer + DELETE commands in WebService
am@osimis.io
parents: 309
diff changeset
66
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
67 bool HasPayload() const
315
aad37d0b6407 Added LayerWidget::RemoveLayer + DELETE commands in WebService
am@osimis.io
parents: 309
diff changeset
68 {
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
69 return payload_ != NULL;
315
aad37d0b6407 Added LayerWidget::RemoveLayer + DELETE commands in WebService
am@osimis.io
parents: 309
diff changeset
70 }
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
71
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
72 const Orthanc::IDynamicObject& GetPayload() const;
315
aad37d0b6407 Added LayerWidget::RemoveLayer + DELETE commands in WebService
am@osimis.io
parents: 309
diff changeset
73 };
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
74
315
aad37d0b6407 Added LayerWidget::RemoveLayer + DELETE commands in WebService
am@osimis.io
parents: 309
diff changeset
75
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 553
diff changeset
76 class BinaryResponseReadyMessage : public IMessage
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
77 {
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 553
diff changeset
78 ORTHANC_STONE_MESSAGE(__FILE__, __LINE__);
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 553
diff changeset
79
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
80 private:
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
81 const std::string& uri_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
82 const void* answer_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
83 size_t answerSize_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
84 const Orthanc::IDynamicObject* payload_;
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
85
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
86 public:
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
87 BinaryResponseReadyMessage(const std::string& uri,
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
88 const void* answer,
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
89 size_t answerSize,
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
90 const Orthanc::IDynamicObject* payload) :
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
91 uri_(uri),
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
92 answer_(answer),
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
93 answerSize_(answerSize),
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
94 payload_(payload)
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
95 {
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
96 }
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
97
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
98 const std::string& GetUri() const
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
99 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
100 return uri_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
101 }
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
102
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
103 const void* GetAnswer() const
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
104 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
105 return answer_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
106 }
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
107
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
108 size_t GetAnswerSize() const
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
109 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
110 return answerSize_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
111 }
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
112
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
113 bool HasPayload() const
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
114 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
115 return payload_ != NULL;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
116 }
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
117
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
118 const Orthanc::IDynamicObject& GetPayload() const;
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
119 };
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
120
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
121
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 553
diff changeset
122 class EmptyResponseReadyMessage : public IMessage
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
123 {
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 553
diff changeset
124 ORTHANC_STONE_MESSAGE(__FILE__, __LINE__);
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 553
diff changeset
125
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
126 private:
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
127 const std::string& uri_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
128 const Orthanc::IDynamicObject* payload_;
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
129
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
130 public:
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
131 EmptyResponseReadyMessage(const std::string& uri,
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
132 const Orthanc::IDynamicObject* payload) :
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
133 uri_(uri),
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
134 payload_(payload)
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
135 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
136 }
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
137
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
138 const std::string& GetUri() const
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
139 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
140 return uri_;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
141 }
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
142
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
143 bool HasPayload() const
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
144 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
145 return payload_ != NULL;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
146 }
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
147
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
148 const Orthanc::IDynamicObject& GetPayload() const;
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
149 };
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
150
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
151
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
152
382
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
153 private:
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
154 class WebServicePayload;
422
4fe42ae3653a introduced a basic cache at OrthancApiClient level so it can be used with the RadiographyScene
am@osimis.io
parents: 417
diff changeset
155
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
156 protected:
417
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 383
diff changeset
157 IWebService& web_;
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 383
diff changeset
158 std::string baseUrl_;
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
159
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
160 public:
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
161 OrthancApiClient(MessageBroker& broker,
417
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 383
diff changeset
162 IWebService& web,
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 383
diff changeset
163 const std::string& baseUrl);
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
164
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
165 virtual ~OrthancApiClient()
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
166 {
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
167 }
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
168
553
92305ee35b1c web-worker consequences: give access to lower level data
Alain Mazy <alain@mazy.be>
parents: 502
diff changeset
169 const std::string& GetBaseUrl() const {return baseUrl_;}
92305ee35b1c web-worker consequences: give access to lower level data
Alain Mazy <alain@mazy.be>
parents: 502
diff changeset
170
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
171 // schedule a GET request expecting a JSON response.
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
172 void GetJsonAsync(const std::string& uri,
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
173 MessageHandler<JsonResponseReadyMessage>* successCallback,
382
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
174 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback = NULL,
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
175 Orthanc::IDynamicObject* payload = NULL /* takes ownership */);
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
176
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
177 // schedule a GET request expecting a binary response.
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
178 void GetBinaryAsync(const std::string& uri,
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
179 const std::string& contentType,
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
180 MessageHandler<BinaryResponseReadyMessage>* successCallback,
382
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
181 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback = NULL,
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
182 Orthanc::IDynamicObject* payload = NULL /* takes ownership */);
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
183
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
184 // schedule a GET request expecting a binary response.
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
185 void GetBinaryAsync(const std::string& uri,
417
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 383
diff changeset
186 const IWebService::HttpHeaders& headers,
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
187 MessageHandler<BinaryResponseReadyMessage>* successCallback,
382
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
188 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback = NULL,
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
189 Orthanc::IDynamicObject* payload = NULL /* takes ownership */);
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
190
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
191 // schedule a POST request expecting a JSON response.
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
192 void PostBinaryAsyncExpectJson(const std::string& uri,
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
193 const std::string& body,
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
194 MessageHandler<JsonResponseReadyMessage>* successCallback,
382
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
195 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback = NULL,
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
196 Orthanc::IDynamicObject* payload = NULL /* takes ownership */);
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
197
309
14ef1227120f web services: better handling of failures
am@osimis.io
parents: 300
diff changeset
198 // schedule a POST request expecting a JSON response.
14ef1227120f web services: better handling of failures
am@osimis.io
parents: 300
diff changeset
199 void PostJsonAsyncExpectJson(const std::string& uri,
14ef1227120f web services: better handling of failures
am@osimis.io
parents: 300
diff changeset
200 const Json::Value& data,
14ef1227120f web services: better handling of failures
am@osimis.io
parents: 300
diff changeset
201 MessageHandler<JsonResponseReadyMessage>* successCallback,
382
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
202 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback = NULL,
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
203 Orthanc::IDynamicObject* payload = NULL /* takes ownership */);
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 271
diff changeset
204
424
bb573a52fc63 allow POST messages with success and failure handlers
am@osimis.io
parents: 422
diff changeset
205 // schedule a POST request and don't mind the response.
bb573a52fc63 allow POST messages with success and failure handlers
am@osimis.io
parents: 422
diff changeset
206 void PostJsonAsync(const std::string& uri,
bb573a52fc63 allow POST messages with success and failure handlers
am@osimis.io
parents: 422
diff changeset
207 const Json::Value& data);
bb573a52fc63 allow POST messages with success and failure handlers
am@osimis.io
parents: 422
diff changeset
208
502
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
209 // schedule a POST request and don't expect any response.
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
210 void PostJsonAsync(const std::string& uri,
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
211 const Json::Value& data,
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
212 MessageHandler<EmptyResponseReadyMessage>* successCallback,
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
213 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback = NULL,
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
214 Orthanc::IDynamicObject* payload = NULL /* takes ownership */);
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
215
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
216
424
bb573a52fc63 allow POST messages with success and failure handlers
am@osimis.io
parents: 422
diff changeset
217 // schedule a POST request and don't mind the response.
bb573a52fc63 allow POST messages with success and failure handlers
am@osimis.io
parents: 422
diff changeset
218 void PostBinaryAsync(const std::string& uri,
bb573a52fc63 allow POST messages with success and failure handlers
am@osimis.io
parents: 422
diff changeset
219 const std::string& body);
bb573a52fc63 allow POST messages with success and failure handlers
am@osimis.io
parents: 422
diff changeset
220
502
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
221 // schedule a POST request and don't expect any response.
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
222 void PostBinaryAsync(const std::string& uri,
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
223 const std::string& body,
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
224 MessageHandler<EmptyResponseReadyMessage>* successCallback,
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
225 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback = NULL,
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
226 Orthanc::IDynamicObject* payload = NULL /* takes ownership */);
3ae7563b4fe1 more orthancApiClient overloads
amazy
parents: 440
diff changeset
227
315
aad37d0b6407 Added LayerWidget::RemoveLayer + DELETE commands in WebService
am@osimis.io
parents: 309
diff changeset
228 // schedule a DELETE request expecting an empty response.
aad37d0b6407 Added LayerWidget::RemoveLayer + DELETE commands in WebService
am@osimis.io
parents: 309
diff changeset
229 void DeleteAsync(const std::string& uri,
aad37d0b6407 Added LayerWidget::RemoveLayer + DELETE commands in WebService
am@osimis.io
parents: 309
diff changeset
230 MessageHandler<EmptyResponseReadyMessage>* successCallback,
382
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
231 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback = NULL,
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 346
diff changeset
232 Orthanc::IDynamicObject* payload = NULL /* takes ownership */);
315
aad37d0b6407 Added LayerWidget::RemoveLayer + DELETE commands in WebService
am@osimis.io
parents: 309
diff changeset
233
382
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
234 void NotifyHttpSuccess(const IWebService::HttpRequestSuccessMessage& message);
383
939f626eb6d7 removing converters in OrthancApiClient
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 382
diff changeset
235
939f626eb6d7 removing converters in OrthancApiClient
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 382
diff changeset
236 void NotifyHttpError(const IWebService::HttpRequestErrorMessage& message);
422
4fe42ae3653a introduced a basic cache at OrthancApiClient level so it can be used with the RadiographyScene
am@osimis.io
parents: 417
diff changeset
237
4fe42ae3653a introduced a basic cache at OrthancApiClient level so it can be used with the RadiographyScene
am@osimis.io
parents: 417
diff changeset
238 private:
4fe42ae3653a introduced a basic cache at OrthancApiClient level so it can be used with the RadiographyScene
am@osimis.io
parents: 417
diff changeset
239 void HandleFromCache(const std::string& uri,
4fe42ae3653a introduced a basic cache at OrthancApiClient level so it can be used with the RadiographyScene
am@osimis.io
parents: 417
diff changeset
240 const IWebService::HttpHeaders& headers,
4fe42ae3653a introduced a basic cache at OrthancApiClient level so it can be used with the RadiographyScene
am@osimis.io
parents: 417
diff changeset
241 Orthanc::IDynamicObject* payload /* takes ownership */);
270
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
242 };
2d64f4d39610 backup (work in progress)
am@osimis.io
parents:
diff changeset
243 }