annotate Platforms/Generic/WebServiceCommandBase.cpp @ 1327:4f8db2d202c8 broker

OrthancSeriesProgressiveLoader now has two modes that can be selected at object creation : - progressive (will first load jpeg50, then jpeg90 then PAM) - non-progressive (will directly load PAM (uncompressed)) Please note that the slice loading order remains dynamic and depending upon the slice that the client code wishes to extract from the volume.
author Benjamin Golinvaux <bgo@osimis.io>
date Wed, 25 Mar 2020 14:34:27 +0100
parents 7ec8fea061b9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
251
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
1 /**
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
2 * Stone of Orthanc
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
4 * Department, University Hospital of Liege, Belgium
1270
2d8ab34c8c91 upgrade to year 2020
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 940
diff changeset
5 * Copyright (C) 2017-2020 Osimis S.A., Belgium
251
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
6 *
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
7 * This program is free software: you can redistribute it and/or
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
8 * modify it under the terms of the GNU Affero General Public License
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
9 * as published by the Free Software Foundation, either version 3 of
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
10 * the License, or (at your option) any later version.
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
11 *
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful, but
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
15 * Affero General Public License for more details.
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
16 *
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
17 * You should have received a copy of the GNU Affero General Public License
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
19 **/
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
20
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
21
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
22 #include "WebServiceCommandBase.h"
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
23
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
24 #include <Core/HttpClient.h>
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
25
726
4f2416d519b4 moving layers, widgets and loaders to Deprecated namespace
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
26 namespace Deprecated
251
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
27 {
1222
21c2b0eee53c deprecating MessageHandler
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1059
diff changeset
28 WebServiceCommandBase::WebServiceCommandBase(MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallback,
21c2b0eee53c deprecating MessageHandler
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1059
diff changeset
29 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback,
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
30 const Orthanc::WebServiceParameters& parameters,
417
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
31 const std::string& url,
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
32 const IWebService::HttpHeaders& headers,
309
14ef1227120f web services: better handling of failures
am@osimis.io
parents: 301
diff changeset
33 unsigned int timeoutInSeconds,
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
34 Orthanc::IDynamicObject* payload /* takes ownership */,
726
4f2416d519b4 moving layers, widgets and loaders to Deprecated namespace
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
35 OrthancStone::NativeStoneApplicationContext& context) :
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
36 successCallback_(successCallback),
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
37 failureCallback_(failureCallback),
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
38 parameters_(parameters),
417
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
39 url_(url),
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
40 headers_(headers),
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
41 payload_(payload),
940
861c080ef47b handling httpStatus in WebService error messages
Alain Mazy <alain@mazy.be>
parents: 726
diff changeset
42 success_(false),
861c080ef47b handling httpStatus in WebService error messages
Alain Mazy <alain@mazy.be>
parents: 726
diff changeset
43 httpStatus_(Orthanc::HttpStatus_None),
309
14ef1227120f web services: better handling of failures
am@osimis.io
parents: 301
diff changeset
44 context_(context),
14ef1227120f web services: better handling of failures
am@osimis.io
parents: 301
diff changeset
45 timeoutInSeconds_(timeoutInSeconds)
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
46 {
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
47 }
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
48
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
49
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
50 void WebServiceCommandBase::Commit()
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
51 {
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 309
diff changeset
52 // We want to make sure that, i.e, the UpdateThread is not
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 309
diff changeset
53 // triggered while we are updating the "model" with the result of
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 309
diff changeset
54 // a WebServiceCommand
726
4f2416d519b4 moving layers, widgets and loaders to Deprecated namespace
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
55 OrthancStone::NativeStoneApplicationContext::GlobalMutexLocker lock(context_);
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
56
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
57 if (success_ && successCallback_.get() != NULL)
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
58 {
417
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
59 IWebService::HttpRequestSuccessMessage message
aee3d7941c9b preparing to load images using DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
60 (url_, answer_.c_str(), answer_.size(), answerHeaders_, payload_.get());
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 309
diff changeset
61 successCallback_->Apply(message);
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
62 }
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
63 else if (!success_ && failureCallback_.get() != NULL)
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
64 {
940
861c080ef47b handling httpStatus in WebService error messages
Alain Mazy <alain@mazy.be>
parents: 726
diff changeset
65 IWebService::HttpRequestErrorMessage message(url_, httpStatus_, payload_.get());
377
8eb4fe74000f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 309
diff changeset
66 failureCallback_->Apply(message);
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
67 }
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 291
diff changeset
68 }
251
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents:
diff changeset
69 }