Mercurial > hg > orthanc-stone
annotate RenderingPlugin/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h @ 2124:16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 30 May 2024 17:00:29 +0200 |
parents | 11bc8a304038 |
children | 2965172977a4 |
rev | line source |
---|---|
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 /** |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 * Orthanc - A Lightweight, RESTful DICOM Store |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 * Department, University Hospital of Liege, Belgium |
2114
c23eef785569
update year to 2024
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2101
diff
changeset
|
5 * Copyright (C) 2017-2024 Osimis S.A., Belgium |
c23eef785569
update year to 2024
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2101
diff
changeset
|
6 * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
7 * |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
8 * This program is free software: you can redistribute it and/or |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 * modify it under the terms of the GNU General Public License as |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 * published by the Free Software Foundation, either version 3 of the |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 * License, or (at your option) any later version. |
1638 | 12 * |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, but |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 * WITHOUT ANY WARRANTY; without even the implied warranty of |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 * General Public License for more details. |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 * |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 **/ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 #pragma once |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
24 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
25 #include "OrthancPluginException.h" |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
27 #include <orthanc/OrthancCPlugin.h> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 #include <boost/noncopyable.hpp> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
29 #include <boost/lexical_cast.hpp> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
30 #include <boost/date_time/posix_time/posix_time.hpp> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
31 #include <json/value.h> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
32 #include <vector> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
33 #include <list> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
34 #include <set> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
35 #include <map> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
36 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
37 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
38 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
39 /** |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
40 * The definition of ORTHANC_PLUGINS_VERSION_IS_ABOVE below is for |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
41 * backward compatibility with Orthanc SDK <= 1.3.0. |
1638 | 42 * |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
43 * $ hg diff -r Orthanc-1.3.0:Orthanc-1.3.1 ../../../Plugins/Include/orthanc/OrthancCPlugin.h |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
44 * |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
45 **/ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
46 #if !defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
47 #define ORTHANC_PLUGINS_VERSION_IS_ABOVE(major, minor, revision) \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
48 (ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER > major || \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
49 (ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER == major && \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
50 (ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER > minor || \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
51 (ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER == minor && \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
52 ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER >= revision)))) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
53 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
54 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
55 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
56 #if !defined(ORTHANC_FRAMEWORK_VERSION_IS_ABOVE) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
57 #define ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(major, minor, revision) \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
58 (ORTHANC_VERSION_MAJOR > major || \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
59 (ORTHANC_VERSION_MAJOR == major && \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
60 (ORTHANC_VERSION_MINOR > minor || \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
61 (ORTHANC_VERSION_MINOR == minor && \ |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
62 ORTHANC_VERSION_REVISION >= revision)))) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
63 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
64 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
65 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
66 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 2, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
67 // The "OrthancPluginFindMatcher()" primitive was introduced in Orthanc 1.2.0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
68 # define HAS_ORTHANC_PLUGIN_FIND_MATCHER 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
69 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
70 # define HAS_ORTHANC_PLUGIN_FIND_MATCHER 0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
71 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
72 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
73 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 4, 2) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
75 # define HAS_ORTHANC_PLUGIN_PEERS 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
76 # define HAS_ORTHANC_PLUGIN_JOB 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
77 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
78 # define HAS_ORTHANC_PLUGIN_PEERS 0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
79 # define HAS_ORTHANC_PLUGIN_JOB 0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
80 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
81 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
82 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 5, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
83 # define HAS_ORTHANC_PLUGIN_EXCEPTION_DETAILS 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
84 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
85 # define HAS_ORTHANC_PLUGIN_EXCEPTION_DETAILS 0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
86 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
87 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
88 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 5, 4) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
89 # define HAS_ORTHANC_PLUGIN_METRICS 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
90 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
91 # define HAS_ORTHANC_PLUGIN_METRICS 0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
92 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
93 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
94 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 1, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
95 # define HAS_ORTHANC_PLUGIN_HTTP_CLIENT 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
96 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
97 # define HAS_ORTHANC_PLUGIN_HTTP_CLIENT 0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
98 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
99 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
100 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 5, 7) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
101 # define HAS_ORTHANC_PLUGIN_CHUNKED_HTTP_CLIENT 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
102 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
103 # define HAS_ORTHANC_PLUGIN_CHUNKED_HTTP_CLIENT 0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
104 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
105 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
106 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 5, 7) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
107 # define HAS_ORTHANC_PLUGIN_CHUNKED_HTTP_SERVER 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
108 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
109 # define HAS_ORTHANC_PLUGIN_CHUNKED_HTTP_SERVER 0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
110 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
111 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
112 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 6, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
113 # define HAS_ORTHANC_PLUGIN_STORAGE_COMMITMENT_SCP 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
114 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
115 # define HAS_ORTHANC_PLUGIN_STORAGE_COMMITMENT_SCP 0 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
116 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
117 |
1955 | 118 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 9, 2) |
119 # define HAS_ORTHANC_PLUGIN_GENERIC_CALL_REST_API 1 | |
120 #else | |
121 # define HAS_ORTHANC_PLUGIN_GENERIC_CALL_REST_API 0 | |
122 #endif | |
123 | |
1913 | 124 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 10, 1) |
125 # define HAS_ORTHANC_PLUGIN_WEBDAV 1 | |
126 #else | |
127 # define HAS_ORTHANC_PLUGIN_WEBDAV 0 | |
128 #endif | |
129 | |
2124
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
130 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 4) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
131 # define HAS_ORTHANC_PLUGIN_LOG_MESSAGE 1 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
132 #else |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
133 # define HAS_ORTHANC_PLUGIN_LOG_MESSAGE 0 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
134 #endif |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
135 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
136 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
137 // Macro to tag a function as having been deprecated |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
138 #if (__cplusplus >= 201402L) // C++14 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
139 # define ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(f) [[deprecated]] f |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
140 #elif defined(__GNUC__) || defined(__clang__) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
141 # define ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(f) f __attribute__((deprecated)) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
142 #elif defined(_MSC_VER) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
143 # define ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(f) __declspec(deprecated) f |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
144 #else |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
145 # define ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
146 #endif |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
147 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
148 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
149 #if !defined(__ORTHANC_FILE__) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
150 # if defined(_MSC_VER) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
151 # pragma message("Warning: Macro __ORTHANC_FILE__ is not defined, this will leak the full path of the source files in the binaries") |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
152 # else |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
153 # warning Warning: Macro __ORTHANC_FILE__ is not defined, this will leak the full path of the source files in the binaries |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
154 # endif |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
155 # define __ORTHANC_FILE__ __FILE__ |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
156 #endif |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
157 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
158 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
159 #if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
160 # define ORTHANC_PLUGINS_LOG_ERROR(msg) ::OrthancPlugins::LogMessage(OrthancPluginLogLevel_Error, __ORTHANC_FILE__, __LINE__, msg) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
161 # define ORTHANC_PLUGINS_LOG_WARNING(msg) ::OrthancPlugins::LogMessage(OrthancPluginLogLevel_Warning, __ORTHANC_FILE__, __LINE__, msg) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
162 # define ORTHANC_PLUGINS_LOG_INFO(msg) ::OrthancPlugins::LogMessage(OrthancPluginLogLevel_Info, __ORTHANC_FILE__, __LINE__, msg) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
163 #else |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
164 # define ORTHANC_PLUGINS_LOG_ERROR(msg) ::OrthancPlugins::LogError(msg) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
165 # define ORTHANC_PLUGINS_LOG_WARNING(msg) ::OrthancPlugins::LogWarning(msg) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
166 # define ORTHANC_PLUGINS_LOG_INFO(msg) ::OrthancPlugins::LogInfo(msg) |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
167 #endif |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
168 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
169 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
170 namespace OrthancPlugins |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
171 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
172 typedef void (*RestCallback) (OrthancPluginRestOutput* output, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
173 const char* url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
174 const OrthancPluginHttpRequest* request); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
175 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
176 void SetGlobalContext(OrthancPluginContext* context); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
177 |
2124
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
178 void SetGlobalContext(OrthancPluginContext* context, |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
179 const char* pluginName); |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
180 |
2101 | 181 void ResetGlobalContext(); |
182 | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
183 bool HasGlobalContext(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
184 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
185 OrthancPluginContext* GetGlobalContext(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
186 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
187 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
188 class OrthancImage; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
189 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
190 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
191 class MemoryBuffer : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
192 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
193 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
194 OrthancPluginMemoryBuffer buffer_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
195 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
196 void Check(OrthancPluginErrorCode code); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
197 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
198 bool CheckHttp(OrthancPluginErrorCode code); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
199 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
200 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
201 MemoryBuffer(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
202 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
203 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 7, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
204 // This constructor makes a copy of the given buffer in the memory |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
205 // handled by the Orthanc core |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
206 MemoryBuffer(const void* buffer, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
207 size_t size); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
208 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
209 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
210 ~MemoryBuffer() |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
211 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
212 Clear(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
213 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
214 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
215 OrthancPluginMemoryBuffer* operator*() |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
216 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
217 return &buffer_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
218 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
219 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
220 // This transfers ownership from "other" to "this" |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
221 void Assign(OrthancPluginMemoryBuffer& other); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
222 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
223 void Swap(MemoryBuffer& other); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
224 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
225 OrthancPluginMemoryBuffer Release(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
226 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
227 const char* GetData() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
228 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
229 if (buffer_.size > 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
230 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
231 return reinterpret_cast<const char*>(buffer_.data); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
232 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
233 else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
234 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
235 return NULL; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
236 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
237 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
238 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
239 size_t GetSize() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
240 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
241 return buffer_.size; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
242 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
243 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
244 bool IsEmpty() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
245 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
246 return GetSize() == 0 || GetData() == NULL; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
247 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
248 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
249 void Clear(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
250 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
251 void ToString(std::string& target) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
252 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
253 void ToJson(Json::Value& target) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
254 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
255 bool RestApiGet(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
256 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
257 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
258 bool RestApiGet(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
259 const std::map<std::string, std::string>& httpHeaders, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
260 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
261 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
262 bool RestApiPost(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
263 const void* body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
264 size_t bodySize, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
265 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
266 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
267 bool RestApiPut(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
268 const void* body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
269 size_t bodySize, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
270 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
271 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
272 bool RestApiPost(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
273 const Json::Value& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
274 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
275 |
1955 | 276 #if HAS_ORTHANC_PLUGIN_GENERIC_CALL_REST_API == 1 |
277 bool RestApiPost(const std::string& uri, | |
278 const Json::Value& body, | |
279 const std::map<std::string, std::string>& httpHeaders, | |
280 bool applyPlugins); | |
281 | |
282 bool RestApiPost(const std::string& uri, | |
283 const void* body, | |
284 size_t bodySize, | |
285 const std::map<std::string, std::string>& httpHeaders, | |
286 bool applyPlugins); | |
287 #endif | |
288 | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
289 bool RestApiPut(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
290 const Json::Value& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
291 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
292 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
293 bool RestApiPost(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
294 const std::string& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
295 bool applyPlugins) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
296 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
297 return RestApiPost(uri, body.empty() ? NULL : body.c_str(), body.size(), applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
298 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
299 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
300 bool RestApiPut(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
301 const std::string& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
302 bool applyPlugins) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
303 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
304 return RestApiPut(uri, body.empty() ? NULL : body.c_str(), body.size(), applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
305 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
306 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
307 void CreateDicom(const Json::Value& tags, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
308 OrthancPluginCreateDicomFlags flags); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
309 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
310 void CreateDicom(const Json::Value& tags, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
311 const OrthancImage& pixelData, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
312 OrthancPluginCreateDicomFlags flags); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
313 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
314 void ReadFile(const std::string& path); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
315 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
316 void GetDicomQuery(const OrthancPluginWorklistQuery* query); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
317 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
318 void DicomToJson(Json::Value& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
319 OrthancPluginDicomToJsonFormat format, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
320 OrthancPluginDicomToJsonFlags flags, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
321 uint32_t maxStringLength); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
322 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
323 bool HttpGet(const std::string& url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
324 const std::string& username, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
325 const std::string& password); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
326 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
327 bool HttpPost(const std::string& url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
328 const std::string& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
329 const std::string& username, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
330 const std::string& password); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
331 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
332 bool HttpPut(const std::string& url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
333 const std::string& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
334 const std::string& username, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
335 const std::string& password); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
336 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
337 void GetDicomInstance(const std::string& instanceId); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
338 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
339 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
340 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
341 class OrthancString : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
342 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
343 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
344 char* str_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
345 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
346 void Clear(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
347 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
348 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
349 OrthancString() : |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
350 str_(NULL) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
351 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
352 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
353 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
354 ~OrthancString() |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
355 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
356 Clear(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
357 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
358 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
359 // This transfers ownership, warning: The string must have been |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
360 // allocated by the Orthanc core |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
361 void Assign(char* str); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
362 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
363 const char* GetContent() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
364 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
365 return str_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
366 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
367 |
1936 | 368 bool IsNullOrEmpty() const |
369 { | |
370 return str_ == NULL || str_[0] == 0; | |
371 } | |
372 | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
373 void ToString(std::string& target) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
374 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
375 void ToJson(Json::Value& target) const; |
1913 | 376 |
377 void ToJsonWithoutComments(Json::Value& target) const; | |
378 }; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
379 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
380 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
381 class OrthancConfiguration : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
382 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
383 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
384 Json::Value configuration_; // Necessarily a Json::objectValue |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
385 std::string path_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
386 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
387 std::string GetPath(const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
388 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
389 void LoadConfiguration(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
390 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
391 public: |
2077
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
392 OrthancConfiguration(); // loads the full Orthanc configuration |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
393 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
394 explicit OrthancConfiguration(bool load); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
395 |
2077
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
396 explicit OrthancConfiguration(const Json::Value& configuration, const std::string& path); // e.g. to load a section from a default json content |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
397 |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
398 const Json::Value& GetJson() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
399 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
400 return configuration_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
401 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
402 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
403 bool IsSection(const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
404 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
405 void GetSection(OrthancConfiguration& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
406 const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
407 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
408 bool LookupStringValue(std::string& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
409 const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
410 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
411 bool LookupIntegerValue(int& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
412 const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
413 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
414 bool LookupUnsignedIntegerValue(unsigned int& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
415 const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
416 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
417 bool LookupBooleanValue(bool& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
418 const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
419 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
420 bool LookupFloatValue(float& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
421 const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
422 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
423 bool LookupListOfStrings(std::list<std::string>& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
424 const std::string& key, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
425 bool allowSingleString) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
426 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
427 bool LookupSetOfStrings(std::set<std::string>& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
428 const std::string& key, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
429 bool allowSingleString) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
430 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
431 std::string GetStringValue(const std::string& key, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
432 const std::string& defaultValue) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
433 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
434 int GetIntegerValue(const std::string& key, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
435 int defaultValue) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
436 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
437 unsigned int GetUnsignedIntegerValue(const std::string& key, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
438 unsigned int defaultValue) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
439 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
440 bool GetBooleanValue(const std::string& key, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
441 bool defaultValue) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
442 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
443 float GetFloatValue(const std::string& key, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
444 float defaultValue) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
445 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
446 void GetDictionary(std::map<std::string, std::string>& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
447 const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
448 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
449 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
450 class OrthancImage : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
451 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
452 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
453 OrthancPluginImage* image_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
454 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
455 void Clear(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
456 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
457 void CheckImageAvailable() const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
458 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
459 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
460 OrthancImage(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
461 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
462 explicit OrthancImage(OrthancPluginImage* image); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
463 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
464 OrthancImage(OrthancPluginPixelFormat format, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
465 uint32_t width, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
466 uint32_t height); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
467 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
468 OrthancImage(OrthancPluginPixelFormat format, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
469 uint32_t width, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
470 uint32_t height, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
471 uint32_t pitch, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
472 void* buffer); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
473 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
474 ~OrthancImage() |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
475 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
476 Clear(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
477 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
478 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
479 void UncompressPngImage(const void* data, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
480 size_t size); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
481 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
482 void UncompressJpegImage(const void* data, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
483 size_t size); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
484 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
485 void DecodeDicomImage(const void* data, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
486 size_t size, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
487 unsigned int frame); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
488 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
489 OrthancPluginPixelFormat GetPixelFormat() const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
490 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
491 unsigned int GetWidth() const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
492 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
493 unsigned int GetHeight() const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
494 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
495 unsigned int GetPitch() const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
496 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
497 void* GetBuffer() const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
498 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
499 const OrthancPluginImage* GetObject() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
500 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
501 return image_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
502 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
503 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
504 void CompressPngImage(MemoryBuffer& target) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
505 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
506 void CompressJpegImage(MemoryBuffer& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
507 uint8_t quality) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
508 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
509 void AnswerPngImage(OrthancPluginRestOutput* output) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
510 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
511 void AnswerJpegImage(OrthancPluginRestOutput* output, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
512 uint8_t quality) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
513 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
514 void* GetWriteableBuffer(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
515 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
516 OrthancPluginImage* Release(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
517 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
518 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
519 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
520 #if HAS_ORTHANC_PLUGIN_FIND_MATCHER == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
521 class FindMatcher : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
522 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
523 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
524 OrthancPluginFindMatcher* matcher_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
525 const OrthancPluginWorklistQuery* worklist_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
526 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
527 void SetupDicom(const void* query, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
528 uint32_t size); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
529 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
530 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
531 explicit FindMatcher(const OrthancPluginWorklistQuery* worklist); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
532 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
533 FindMatcher(const void* query, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
534 uint32_t size) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
535 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
536 SetupDicom(query, size); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
537 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
538 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
539 explicit FindMatcher(const MemoryBuffer& dicom) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
540 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
541 SetupDicom(dicom.GetData(), dicom.GetSize()); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
542 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
543 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
544 ~FindMatcher(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
545 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
546 bool IsMatch(const void* dicom, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
547 uint32_t size) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
548 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
549 bool IsMatch(const MemoryBuffer& dicom) const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
550 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
551 return IsMatch(dicom.GetData(), dicom.GetSize()); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
552 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
553 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
554 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
555 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
556 |
1736 | 557 bool ReadJson(Json::Value& target, |
558 const std::string& source); | |
559 | |
560 bool ReadJson(Json::Value& target, | |
561 const void* buffer, | |
562 size_t size); | |
563 | |
1771
f302bbddf94d
sync, trying to fix DicomVolumeImageReslicer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
564 bool ReadJsonWithoutComments(Json::Value& target, |
f302bbddf94d
sync, trying to fix DicomVolumeImageReslicer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
565 const std::string& source); |
f302bbddf94d
sync, trying to fix DicomVolumeImageReslicer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
566 |
f302bbddf94d
sync, trying to fix DicomVolumeImageReslicer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
567 bool ReadJsonWithoutComments(Json::Value& target, |
f302bbddf94d
sync, trying to fix DicomVolumeImageReslicer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
568 const void* buffer, |
f302bbddf94d
sync, trying to fix DicomVolumeImageReslicer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
569 size_t size); |
f302bbddf94d
sync, trying to fix DicomVolumeImageReslicer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
570 |
1736 | 571 void WriteFastJson(std::string& target, |
572 const Json::Value& source); | |
573 | |
574 void WriteStyledJson(std::string& target, | |
575 const Json::Value& source); | |
576 | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
577 bool RestApiGet(Json::Value& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
578 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
579 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
580 |
2077
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
581 bool RestApiGet(Json::Value& result, |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
582 const std::string& uri, |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
583 const std::map<std::string, std::string>& httpHeaders, |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
584 bool applyPlugins); |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
585 |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
586 bool RestApiGetString(std::string& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
587 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
588 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
589 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
590 bool RestApiGetString(std::string& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
591 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
592 const std::map<std::string, std::string>& httpHeaders, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
593 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
594 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
595 bool RestApiPost(std::string& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
596 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
597 const void* body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
598 size_t bodySize, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
599 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
600 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
601 bool RestApiPost(Json::Value& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
602 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
603 const void* body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
604 size_t bodySize, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
605 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
606 |
1955 | 607 #if HAS_ORTHANC_PLUGIN_GENERIC_CALL_REST_API == 1 |
608 bool RestApiPost(Json::Value& result, | |
609 const std::string& uri, | |
610 const Json::Value& body, | |
611 const std::map<std::string, std::string>& httpHeaders, | |
612 bool applyPlugins); | |
613 #endif | |
614 | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
615 bool RestApiPost(Json::Value& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
616 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
617 const Json::Value& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
618 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
619 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
620 inline bool RestApiPost(Json::Value& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
621 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
622 const std::string& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
623 bool applyPlugins) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
624 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
625 return RestApiPost(result, uri, body.empty() ? NULL : body.c_str(), |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
626 body.size(), applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
627 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
628 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
629 inline bool RestApiPost(Json::Value& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
630 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
631 const MemoryBuffer& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
632 bool applyPlugins) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
633 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
634 return RestApiPost(result, uri, body.GetData(), |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
635 body.GetSize(), applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
636 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
637 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
638 bool RestApiPut(Json::Value& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
639 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
640 const void* body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
641 size_t bodySize, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
642 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
643 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
644 bool RestApiPut(Json::Value& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
645 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
646 const Json::Value& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
647 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
648 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
649 inline bool RestApiPut(Json::Value& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
650 const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
651 const std::string& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
652 bool applyPlugins) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
653 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
654 return RestApiPut(result, uri, body.empty() ? NULL : body.c_str(), |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
655 body.size(), applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
656 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
657 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
658 bool RestApiDelete(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
659 bool applyPlugins); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
660 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
661 bool HttpDelete(const std::string& url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
662 const std::string& username, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
663 const std::string& password); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
664 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
665 void AnswerJson(const Json::Value& value, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
666 OrthancPluginRestOutput* output); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
667 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
668 void AnswerString(const std::string& answer, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
669 const char* mimeType, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
670 OrthancPluginRestOutput* output); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
671 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
672 void AnswerHttpError(uint16_t httpError, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
673 OrthancPluginRestOutput* output); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
674 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
675 void AnswerMethodNotAllowed(OrthancPluginRestOutput* output, const char* allowedMethods); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
676 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
677 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 5, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
678 const char* AutodetectMimeType(const std::string& path); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
679 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
680 |
2124
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
681 #if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
682 void LogMessage(OrthancPluginLogLevel level, |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
683 const char* file, |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
684 uint32_t line, |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
685 const std::string& message); |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
686 #endif |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
687 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
688 #if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
689 // Use macro ORTHANC_PLUGINS_LOG_ERROR() instead |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
690 ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(void LogError(const std::string& message)); |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
691 #else |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
692 void LogError(const std::string& message); |
2124
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
693 #endif |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
694 |
2124
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
695 #if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
696 // Use macro ORTHANC_PLUGINS_LOG_WARNING() instead |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
697 ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(void LogWarning(const std::string& message)); |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
698 #else |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
699 void LogWarning(const std::string& message); |
2124
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
700 #endif |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
701 |
2124
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
702 #if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
703 // Use macro ORTHANC_PLUGINS_LOG_INFO() instead |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
704 ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(void LogInfo(const std::string& message)); |
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
705 #else |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
706 void LogInfo(const std::string& message); |
2124
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2119
diff
changeset
|
707 #endif |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
708 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
709 void ReportMinimalOrthancVersion(unsigned int major, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
710 unsigned int minor, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
711 unsigned int revision); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
712 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
713 bool CheckMinimalOrthancVersion(unsigned int major, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
714 unsigned int minor, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
715 unsigned int revision); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
716 |
1936 | 717 bool CheckMinimalVersion(const char* version, |
718 unsigned int major, | |
719 unsigned int minor, | |
720 unsigned int revision); | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
721 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
722 namespace Internals |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
723 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
724 template <RestCallback Callback> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
725 static OrthancPluginErrorCode Protect(OrthancPluginRestOutput* output, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
726 const char* url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
727 const OrthancPluginHttpRequest* request) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
728 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
729 try |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
730 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
731 Callback(output, url, request); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
732 return OrthancPluginErrorCode_Success; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
733 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
734 catch (ORTHANC_PLUGINS_EXCEPTION_CLASS& e) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
735 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
736 #if HAS_ORTHANC_EXCEPTION == 1 && HAS_ORTHANC_PLUGIN_EXCEPTION_DETAILS == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
737 if (HasGlobalContext() && |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
738 e.HasDetails()) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
739 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
740 // The "false" instructs Orthanc not to log the detailed |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
741 // error message. This is to avoid duplicating the details, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
742 // because "OrthancException" already does it on construction. |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
743 OrthancPluginSetHttpErrorDetails |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
744 (GetGlobalContext(), output, e.GetDetails(), false); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
745 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
746 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
747 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
748 return static_cast<OrthancPluginErrorCode>(e.GetErrorCode()); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
749 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
750 catch (boost::bad_lexical_cast&) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
751 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
752 return OrthancPluginErrorCode_BadFileFormat; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
753 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
754 catch (...) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
755 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
756 return OrthancPluginErrorCode_Plugin; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
757 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
758 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
759 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
760 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
761 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
762 template <RestCallback Callback> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
763 void RegisterRestCallback(const std::string& uri, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
764 bool isThreadSafe) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
765 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
766 if (isThreadSafe) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
767 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
768 OrthancPluginRegisterRestCallbackNoLock |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
769 (GetGlobalContext(), uri.c_str(), Internals::Protect<Callback>); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
770 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
771 else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
772 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
773 OrthancPluginRegisterRestCallback |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
774 (GetGlobalContext(), uri.c_str(), Internals::Protect<Callback>); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
775 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
776 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
777 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
778 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
779 #if HAS_ORTHANC_PLUGIN_PEERS == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
780 class OrthancPeers : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
781 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
782 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
783 typedef std::map<std::string, uint32_t> Index; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
784 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
785 OrthancPluginPeers *peers_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
786 Index index_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
787 uint32_t timeout_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
788 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
789 size_t GetPeerIndex(const std::string& name) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
790 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
791 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
792 OrthancPeers(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
793 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
794 ~OrthancPeers(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
795 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
796 uint32_t GetTimeout() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
797 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
798 return timeout_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
799 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
800 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
801 void SetTimeout(uint32_t timeout) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
802 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
803 timeout_ = timeout; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
804 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
805 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
806 bool LookupName(size_t& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
807 const std::string& name) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
808 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
809 std::string GetPeerName(size_t index) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
810 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
811 std::string GetPeerUrl(size_t index) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
812 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
813 std::string GetPeerUrl(const std::string& name) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
814 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
815 size_t GetPeersCount() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
816 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
817 return index_.size(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
818 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
819 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
820 bool LookupUserProperty(std::string& value, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
821 size_t index, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
822 const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
823 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
824 bool LookupUserProperty(std::string& value, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
825 const std::string& peer, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
826 const std::string& key) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
827 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
828 bool DoGet(MemoryBuffer& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
829 size_t index, |
1955 | 830 const std::string& uri, |
831 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
832 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
833 bool DoGet(MemoryBuffer& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
834 const std::string& name, |
1955 | 835 const std::string& uri, |
836 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
837 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
838 bool DoGet(Json::Value& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
839 size_t index, |
1955 | 840 const std::string& uri, |
841 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
842 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
843 bool DoGet(Json::Value& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
844 const std::string& name, |
1955 | 845 const std::string& uri, |
846 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
847 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
848 bool DoPost(MemoryBuffer& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
849 size_t index, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
850 const std::string& uri, |
1955 | 851 const std::string& body, |
852 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
853 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
854 bool DoPost(MemoryBuffer& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
855 const std::string& name, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
856 const std::string& uri, |
1955 | 857 const std::string& body, |
858 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
859 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
860 bool DoPost(Json::Value& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
861 size_t index, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
862 const std::string& uri, |
1955 | 863 const std::string& body, |
864 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
865 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
866 bool DoPost(Json::Value& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
867 const std::string& name, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
868 const std::string& uri, |
1955 | 869 const std::string& body, |
870 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
871 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
872 bool DoPut(size_t index, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
873 const std::string& uri, |
1955 | 874 const std::string& body, |
875 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
876 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
877 bool DoPut(const std::string& name, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
878 const std::string& uri, |
1955 | 879 const std::string& body, |
880 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
881 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
882 bool DoDelete(size_t index, |
1955 | 883 const std::string& uri, |
884 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
885 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
886 bool DoDelete(const std::string& name, |
1955 | 887 const std::string& uri, |
888 const std::map<std::string, std::string>& headers) const; | |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
889 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
890 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
891 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
892 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
893 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
894 #if HAS_ORTHANC_PLUGIN_JOB == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
895 class OrthancJob : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
896 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
897 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
898 std::string jobType_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
899 std::string content_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
900 bool hasSerialized_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
901 std::string serialized_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
902 float progress_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
903 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
904 static void CallbackFinalize(void* job); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
905 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
906 static float CallbackGetProgress(void* job); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
907 |
2077
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
908 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 11, 3) |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
909 static OrthancPluginErrorCode CallbackGetContent(OrthancPluginMemoryBuffer* target, |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
910 void* job); |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
911 #else |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
912 static const char* CallbackGetContent(void* job); |
2077
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
913 #endif |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
914 |
2077
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
915 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 11, 3) |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
916 static int32_t CallbackGetSerialized(OrthancPluginMemoryBuffer* target, |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
917 void* job); |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
918 #else |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
919 static const char* CallbackGetSerialized(void* job); |
2077
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
920 #endif |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
921 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
922 static OrthancPluginJobStepStatus CallbackStep(void* job); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
923 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
924 static OrthancPluginErrorCode CallbackStop(void* job, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
925 OrthancPluginJobStopReason reason); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
926 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
927 static OrthancPluginErrorCode CallbackReset(void* job); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
928 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
929 protected: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
930 void ClearContent(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
931 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
932 void UpdateContent(const Json::Value& content); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
933 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
934 void ClearSerialized(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
935 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
936 void UpdateSerialized(const Json::Value& serialized); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
937 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
938 void UpdateProgress(float progress); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
939 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
940 public: |
1638 | 941 explicit OrthancJob(const std::string& jobType); |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
942 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
943 virtual ~OrthancJob() |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
944 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
945 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
946 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
947 virtual OrthancPluginJobStepStatus Step() = 0; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
948 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
949 virtual void Stop(OrthancPluginJobStopReason reason) = 0; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
950 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
951 virtual void Reset() = 0; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
952 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
953 static OrthancPluginJob* Create(OrthancJob* job /* takes ownership */); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
954 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
955 static std::string Submit(OrthancJob* job /* takes ownership */, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
956 int priority); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
957 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
958 static void SubmitAndWait(Json::Value& result, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
959 OrthancJob* job /* takes ownership */, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
960 int priority); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
961 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
962 // Submit a job from a POST on the REST API with the same |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
963 // conventions as in the Orthanc core (according to the |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
964 // "Synchronous" and "Priority" options) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
965 static void SubmitFromRestApiPost(OrthancPluginRestOutput* output, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
966 const Json::Value& body, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
967 OrthancJob* job); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
968 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
969 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
970 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
971 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
972 #if HAS_ORTHANC_PLUGIN_METRICS == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
973 inline void SetMetricsValue(char* name, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
974 float value) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
975 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
976 OrthancPluginSetMetricsValue(GetGlobalContext(), name, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
977 value, OrthancPluginMetricsType_Default); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
978 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
979 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
980 class MetricsTimer : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
981 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
982 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
983 std::string name_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
984 boost::posix_time::ptime start_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
985 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
986 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
987 explicit MetricsTimer(const char* name); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
988 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
989 ~MetricsTimer(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
990 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
991 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
992 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
993 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
994 #if HAS_ORTHANC_PLUGIN_HTTP_CLIENT == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
995 class HttpClient : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
996 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
997 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
998 typedef std::map<std::string, std::string> HttpHeaders; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
999 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1000 class IRequestBody : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1001 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1002 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1003 virtual ~IRequestBody() |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1004 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1005 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1006 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1007 virtual bool ReadNextChunk(std::string& chunk) = 0; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1008 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1009 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1010 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1011 class IAnswer : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1012 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1013 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1014 virtual ~IAnswer() |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1015 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1016 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1017 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1018 virtual void AddHeader(const std::string& key, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1019 const std::string& value) = 0; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1020 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1021 virtual void AddChunk(const void* data, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1022 size_t size) = 0; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1023 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1024 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1025 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1026 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1027 class RequestBodyWrapper; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1028 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1029 uint16_t httpStatus_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1030 OrthancPluginHttpMethod method_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1031 std::string url_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1032 HttpHeaders headers_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1033 std::string username_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1034 std::string password_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1035 uint32_t timeout_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1036 std::string certificateFile_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1037 std::string certificateKeyFile_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1038 std::string certificateKeyPassword_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1039 bool pkcs11_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1040 std::string fullBody_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1041 IRequestBody* chunkedBody_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1042 bool allowChunkedTransfers_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1043 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1044 #if HAS_ORTHANC_PLUGIN_CHUNKED_HTTP_CLIENT == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1045 void ExecuteWithStream(uint16_t& httpStatus, // out |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1046 IAnswer& answer, // out |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1047 IRequestBody& body) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1048 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1049 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1050 void ExecuteWithoutStream(uint16_t& httpStatus, // out |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1051 HttpHeaders& answerHeaders, // out |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1052 std::string& answerBody, // out |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1053 const std::string& body) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1054 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1055 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1056 HttpClient(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1057 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1058 uint16_t GetHttpStatus() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1059 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1060 return httpStatus_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1061 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1062 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1063 void SetMethod(OrthancPluginHttpMethod method) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1064 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1065 method_ = method; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1066 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1067 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1068 const std::string& GetUrl() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1069 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1070 return url_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1071 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1072 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1073 void SetUrl(const std::string& url) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1074 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1075 url_ = url; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1076 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1077 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1078 void SetHeaders(const HttpHeaders& headers) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1079 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1080 headers_ = headers; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1081 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1082 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1083 void AddHeader(const std::string& key, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1084 const std::string& value) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1085 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1086 headers_[key] = value; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1087 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1088 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1089 void AddHeaders(const HttpHeaders& headers); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1090 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1091 void SetCredentials(const std::string& username, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1092 const std::string& password); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1093 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1094 void ClearCredentials(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1095 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1096 void SetTimeout(unsigned int timeout) // 0 for default timeout |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1097 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1098 timeout_ = timeout; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1099 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1100 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1101 void SetCertificate(const std::string& certificateFile, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1102 const std::string& keyFile, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1103 const std::string& keyPassword); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1104 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1105 void ClearCertificate(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1106 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1107 void SetPkcs11(bool pkcs11) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1108 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1109 pkcs11_ = pkcs11; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1110 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1111 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1112 void ClearBody(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1113 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1114 void SwapBody(std::string& body); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1115 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1116 void SetBody(const std::string& body); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1117 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1118 void SetBody(IRequestBody& body); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1119 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1120 // This function can be used to disable chunked transfers if the |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1121 // remote server is Orthanc with a version <= 1.5.6. |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1122 void SetChunkedTransfersAllowed(bool allow) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1123 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1124 allowChunkedTransfers_ = allow; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1125 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1126 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1127 bool IsChunkedTransfersAllowed() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1128 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1129 return allowChunkedTransfers_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1130 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1131 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1132 void Execute(IAnswer& answer); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1133 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1134 void Execute(HttpHeaders& answerHeaders /* out */, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1135 std::string& answerBody /* out */); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1136 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1137 void Execute(HttpHeaders& answerHeaders /* out */, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1138 Json::Value& answerBody /* out */); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1139 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1140 void Execute(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1141 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1142 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1143 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1144 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1145 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1146 class IChunkedRequestReader : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1147 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1148 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1149 virtual ~IChunkedRequestReader() |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1150 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1151 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1152 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1153 virtual void AddChunk(const void* data, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1154 size_t size) = 0; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1155 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1156 virtual void Execute(OrthancPluginRestOutput* output) = 0; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1157 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1158 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1159 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1160 typedef IChunkedRequestReader* (*ChunkedRestCallback) (const char* url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1161 const OrthancPluginHttpRequest* request); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1162 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1163 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1164 namespace Internals |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1165 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1166 void NullRestCallback(OrthancPluginRestOutput* output, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1167 const char* url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1168 const OrthancPluginHttpRequest* request); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1169 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1170 IChunkedRequestReader *NullChunkedRestCallback(const char* url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1171 const OrthancPluginHttpRequest* request); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1172 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1173 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1174 #if HAS_ORTHANC_PLUGIN_CHUNKED_HTTP_SERVER == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1175 template <ChunkedRestCallback Callback> |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1176 static OrthancPluginErrorCode ChunkedProtect(OrthancPluginServerChunkedRequestReader** reader, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1177 const char* url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1178 const OrthancPluginHttpRequest* request) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1179 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1180 try |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1181 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1182 if (reader == NULL) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1183 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1184 return OrthancPluginErrorCode_InternalError; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1185 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1186 else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1187 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1188 *reader = reinterpret_cast<OrthancPluginServerChunkedRequestReader*>(Callback(url, request)); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1189 if (*reader == NULL) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1190 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1191 return OrthancPluginErrorCode_Plugin; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1192 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1193 else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1194 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1195 return OrthancPluginErrorCode_Success; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1196 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1197 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1198 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1199 catch (ORTHANC_PLUGINS_EXCEPTION_CLASS& e) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1200 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1201 return static_cast<OrthancPluginErrorCode>(e.GetErrorCode()); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1202 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1203 catch (boost::bad_lexical_cast&) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1204 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1205 return OrthancPluginErrorCode_BadFileFormat; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1206 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1207 catch (...) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1208 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1209 return OrthancPluginErrorCode_Plugin; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1210 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1211 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1212 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1213 OrthancPluginErrorCode ChunkedRequestReaderAddChunk( |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1214 OrthancPluginServerChunkedRequestReader* reader, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1215 const void* data, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1216 uint32_t size); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1217 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1218 OrthancPluginErrorCode ChunkedRequestReaderExecute( |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1219 OrthancPluginServerChunkedRequestReader* reader, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1220 OrthancPluginRestOutput* output); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1221 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1222 void ChunkedRequestReaderFinalize( |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1223 OrthancPluginServerChunkedRequestReader* reader); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1224 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1225 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1226 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1227 OrthancPluginErrorCode ChunkedRestCompatibility(OrthancPluginRestOutput* output, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1228 const char* url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1229 const OrthancPluginHttpRequest* request, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1230 RestCallback GetHandler, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1231 ChunkedRestCallback PostHandler, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1232 RestCallback DeleteHandler, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1233 ChunkedRestCallback PutHandler); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1234 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1235 template< |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1236 RestCallback GetHandler, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1237 ChunkedRestCallback PostHandler, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1238 RestCallback DeleteHandler, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1239 ChunkedRestCallback PutHandler |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1240 > |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1241 inline OrthancPluginErrorCode ChunkedRestCompatibility(OrthancPluginRestOutput* output, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1242 const char* url, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1243 const OrthancPluginHttpRequest* request) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1244 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1245 return ChunkedRestCompatibility(output, url, request, GetHandler, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1246 PostHandler, DeleteHandler, PutHandler); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1247 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1248 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1249 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1250 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1251 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1252 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1253 // NB: We use a templated class instead of a templated function, because |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1254 // default values are only available in functions since C++11 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1255 template< |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1256 RestCallback GetHandler = Internals::NullRestCallback, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1257 ChunkedRestCallback PostHandler = Internals::NullChunkedRestCallback, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1258 RestCallback DeleteHandler = Internals::NullRestCallback, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1259 ChunkedRestCallback PutHandler = Internals::NullChunkedRestCallback |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1260 > |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1261 class ChunkedRestRegistration : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1262 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1263 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1264 static void Apply(const std::string& uri) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1265 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1266 #if HAS_ORTHANC_PLUGIN_CHUNKED_HTTP_SERVER == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1267 OrthancPluginRegisterChunkedRestCallback( |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1268 GetGlobalContext(), uri.c_str(), |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1269 GetHandler == Internals::NullRestCallback ? NULL : Internals::Protect<GetHandler>, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1270 PostHandler == Internals::NullChunkedRestCallback ? NULL : Internals::ChunkedProtect<PostHandler>, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1271 DeleteHandler == Internals::NullRestCallback ? NULL : Internals::Protect<DeleteHandler>, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1272 PutHandler == Internals::NullChunkedRestCallback ? NULL : Internals::ChunkedProtect<PutHandler>, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1273 Internals::ChunkedRequestReaderAddChunk, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1274 Internals::ChunkedRequestReaderExecute, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1275 Internals::ChunkedRequestReaderFinalize); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1276 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1277 OrthancPluginRegisterRestCallbackNoLock( |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1278 GetGlobalContext(), uri.c_str(), |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1279 Internals::ChunkedRestCompatibility<GetHandler, PostHandler, DeleteHandler, PutHandler>); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1280 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1281 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1282 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1283 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1284 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1285 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1286 #if HAS_ORTHANC_PLUGIN_STORAGE_COMMITMENT_SCP == 1 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1287 class IStorageCommitmentScpHandler : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1288 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1289 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1290 virtual ~IStorageCommitmentScpHandler() |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1291 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1292 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1293 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1294 virtual OrthancPluginStorageCommitmentFailureReason Lookup(const std::string& sopClassUid, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1295 const std::string& sopInstanceUid) = 0; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1296 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1297 static OrthancPluginErrorCode Lookup(OrthancPluginStorageCommitmentFailureReason* target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1298 void* rawHandler, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1299 const char* sopClassUid, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1300 const char* sopInstanceUid); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1301 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1302 static void Destructor(void* rawHandler); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1303 }; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1304 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1305 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1306 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1307 class DicomInstance : public boost::noncopyable |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1308 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1309 private: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1310 bool toFree_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1311 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1312 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 6, 1) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1313 const OrthancPluginDicomInstance* instance_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1314 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1315 OrthancPluginDicomInstance* instance_; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1316 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1317 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1318 public: |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1319 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 6, 1) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1320 explicit DicomInstance(const OrthancPluginDicomInstance* instance); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1321 #else |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1322 explicit DicomInstance(OrthancPluginDicomInstance* instance); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1323 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1324 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1325 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 7, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1326 DicomInstance(const void* buffer, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1327 size_t size); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1328 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1329 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1330 ~DicomInstance(); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1331 |
2077
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1332 const OrthancPluginDicomInstance* GetObject() const |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1333 { |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1334 return instance_; |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1335 } |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1336 |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1337 std::string GetRemoteAet() const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1338 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1339 const void* GetBuffer() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1340 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1341 return OrthancPluginGetInstanceData(GetGlobalContext(), instance_); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1342 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1343 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1344 size_t GetSize() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1345 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1346 return static_cast<size_t>(OrthancPluginGetInstanceSize(GetGlobalContext(), instance_)); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1347 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1348 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1349 void GetJson(Json::Value& target) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1350 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1351 void GetSimplifiedJson(Json::Value& target) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1352 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1353 OrthancPluginInstanceOrigin GetOrigin() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1354 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1355 return OrthancPluginGetInstanceOrigin(GetGlobalContext(), instance_); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1356 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1357 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1358 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 6, 1) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1359 std::string GetTransferSyntaxUid() const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1360 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1361 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1362 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 6, 1) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1363 bool HasPixelData() const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1364 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1365 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1366 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 7, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1367 unsigned int GetFramesCount() const |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1368 { |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1369 return OrthancPluginGetInstanceFramesCount(GetGlobalContext(), instance_); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1370 } |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1371 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1372 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1373 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 7, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1374 void GetRawFrame(std::string& target, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1375 unsigned int frameIndex) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1376 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1377 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1378 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 7, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1379 OrthancImage* GetDecodedFrame(unsigned int frameIndex) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1380 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1381 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1382 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 7, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1383 void Serialize(std::string& target) const; |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1384 #endif |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1385 |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1386 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 7, 0) |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1387 static DicomInstance* Transcode(const void* buffer, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1388 size_t size, |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1389 const std::string& transferSyntax); |
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1390 #endif |
2077
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1391 |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1392 #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 1) |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1393 static DicomInstance* Load(const std::string& instanceId, |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1394 OrthancPluginLoadDicomInstanceMode mode); |
07964689cb0b
upgrade to year 2023
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1955
diff
changeset
|
1395 #endif |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1396 }; |
1913 | 1397 |
1955 | 1398 // helper method to convert Http headers from the plugin SDK to a std::map |
1399 void GetHttpHeaders(std::map<std::string, std::string>& result, const OrthancPluginHttpRequest* request); | |
1913 | 1400 |
1401 #if HAS_ORTHANC_PLUGIN_WEBDAV == 1 | |
1402 class IWebDavCollection : public boost::noncopyable | |
1403 { | |
1404 public: | |
1405 class FileInfo | |
1406 { | |
1407 private: | |
1408 std::string name_; | |
1409 uint64_t contentSize_; | |
1410 std::string mime_; | |
1411 std::string dateTime_; | |
1412 | |
1413 public: | |
1414 FileInfo(const std::string& name, | |
1415 uint64_t contentSize, | |
1416 const std::string& dateTime) : | |
1417 name_(name), | |
1418 contentSize_(contentSize), | |
1419 dateTime_(dateTime) | |
1420 { | |
1421 } | |
1422 | |
1423 const std::string& GetName() const | |
1424 { | |
1425 return name_; | |
1426 } | |
1427 | |
1428 uint64_t GetContentSize() const | |
1429 { | |
1430 return contentSize_; | |
1431 } | |
1432 | |
1433 void SetMimeType(const std::string& mime) | |
1434 { | |
1435 mime_ = mime; | |
1436 } | |
1437 | |
1438 const std::string& GetMimeType() const | |
1439 { | |
1440 return mime_; | |
1441 } | |
1442 | |
1443 const std::string& GetDateTime() const | |
1444 { | |
1445 return dateTime_; | |
1446 } | |
1447 }; | |
1448 | |
1449 class FolderInfo | |
1450 { | |
1451 private: | |
1452 std::string name_; | |
1453 std::string dateTime_; | |
1454 | |
1455 public: | |
1456 FolderInfo(const std::string& name, | |
1457 const std::string& dateTime) : | |
1458 name_(name), | |
1459 dateTime_(dateTime) | |
1460 { | |
1461 } | |
1462 | |
1463 const std::string& GetName() const | |
1464 { | |
1465 return name_; | |
1466 } | |
1467 | |
1468 const std::string& GetDateTime() const | |
1469 { | |
1470 return dateTime_; | |
1471 } | |
1472 }; | |
1473 | |
1474 virtual ~IWebDavCollection() | |
1475 { | |
1476 } | |
1477 | |
1478 virtual bool IsExistingFolder(const std::vector<std::string>& path) = 0; | |
1479 | |
1480 virtual bool ListFolder(std::list<FileInfo>& files, | |
1481 std::list<FolderInfo>& subfolders, | |
1482 const std::vector<std::string>& path) = 0; | |
1483 | |
1484 virtual bool GetFile(std::string& content /* out */, | |
1485 std::string& mime /* out */, | |
1486 std::string& dateTime /* out */, | |
1487 const std::vector<std::string>& path) = 0; | |
1488 | |
1489 virtual bool StoreFile(const std::vector<std::string>& path, | |
1490 const void* data, | |
1491 size_t size) = 0; | |
1492 | |
1493 virtual bool CreateFolder(const std::vector<std::string>& path) = 0; | |
1494 | |
1495 virtual bool DeleteItem(const std::vector<std::string>& path) = 0; | |
1496 | |
1497 static void Register(const std::string& uri, | |
1498 IWebDavCollection& collection); | |
1499 }; | |
1500 #endif | |
2119
11bc8a304038
fix deprecated calls
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
1501 |
11bc8a304038
fix deprecated calls
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
1502 void SetRootUri(const std::string& pluginIdentifier, |
11bc8a304038
fix deprecated calls
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
1503 const std::string& uri); |
11bc8a304038
fix deprecated calls
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
1504 |
11bc8a304038
fix deprecated calls
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
1505 void SetDescription(const std::string& pluginIdentifier, |
11bc8a304038
fix deprecated calls
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
1506 const std::string& description); |
11bc8a304038
fix deprecated calls
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
1507 |
11bc8a304038
fix deprecated calls
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
1508 void ExtendOrthancExplorer(const std::string& pluginIdentifier, |
11bc8a304038
fix deprecated calls
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
1509 const std::string& javascript); |
1538
d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1510 } |