Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package orthanc-python for openSUSE:Factory checked in at 2021-01-27 18:57:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/orthanc-python (Old) and /work/SRC/openSUSE:Factory/.orthanc-python.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "orthanc-python" Wed Jan 27 18:57:39 2021 rev:2 rq:866879 version:3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/orthanc-python/orthanc-python.changes 2020-12-30 17:12:44.936708904 +0100 +++ /work/SRC/openSUSE:Factory/.orthanc-python.new.28504/orthanc-python.changes 2021-01-27 18:57:41.664383215 +0100 @@ -1,0 +2,7 @@ +Mon Jan 25 14:53:58 UTC 2021 - Axel Braun <axel.br...@gmx.de> + +- verion 3.1 +* Fix possible deadlock with "orthanc.RegisterOnChangeCallback()" +* During Orthanc shutdown, wait for all the pending events to have been processed + +------------------------------------------------------------------- Old: ---- OrthancPython-3.0.tar.gz New: ---- OrthancPython-3.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ orthanc-python.spec ++++++ --- /var/tmp/diff_new_pack.CBCbVz/_old 2021-01-27 18:57:42.260384136 +0100 +++ /var/tmp/diff_new_pack.CBCbVz/_new 2021-01-27 18:57:42.264384143 +0100 @@ -2,7 +2,7 @@ # spec file for package orthanc-python # # Copyright (c) 2020 SUSE LLC -# Copyright (c) 2020 Dr. Axel Braun +# Copyright (c) 2020-2021 Dr. Axel Braun # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ Summary: Python plugin for Orthanc License: AGPL-3.0-or-later Group: Productivity/Graphics/Viewers -Version: 3.0 +Version: 3.1 Release: 0 URL: https://orthanc-server.com Source0: https://www.orthanc-server.com/downloads/get.php?path=/plugin-python/OrthancPython-%{version}.tar.gz ++++++ OrthancPython-3.0.tar.gz -> OrthancPython-3.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/.hg_archival.txt new/OrthancPython-3.1/.hg_archival.txt --- old/OrthancPython-3.0/.hg_archival.txt 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/.hg_archival.txt 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ repo: 7ed502b17b8f54de8885d96a413c9679f694ad4b -node: 0dbc1360e8293e80275d5033ead5a8ee8fd57a24 -branch: OrthancPython-3.0 +node: 950c1fb892ad8f990a64c844ae180ca018d2ba84 +branch: OrthancPython-3.1 latesttag: null -latesttagdistance: 52 -changessincelatesttag: 55 +latesttagdistance: 58 +changessincelatesttag: 61 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/CMakeLists.txt new/OrthancPython-3.1/CMakeLists.txt --- old/OrthancPython-3.0/CMakeLists.txt 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/CMakeLists.txt 2021-01-22 10:08:17.000000000 +0100 @@ -1,13 +1,13 @@ cmake_minimum_required(VERSION 2.8) project(OrthancPython) -set(PLUGIN_VERSION "3.0") +set(PLUGIN_VERSION "3.1") if (PLUGIN_VERSION STREQUAL "mainline") set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "mainline") set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg") else() - set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "1.8.1") + set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "1.8.2") set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web") endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/CodeAnalysis/Class.mustache new/OrthancPython-3.1/CodeAnalysis/Class.mustache --- old/OrthancPython-3.0/CodeAnalysis/Class.mustache 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/CodeAnalysis/Class.mustache 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/CodeAnalysis/Enumeration.mustache new/OrthancPython-3.1/CodeAnalysis/Enumeration.mustache --- old/OrthancPython-3.0/CodeAnalysis/Enumeration.mustache 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/CodeAnalysis/Enumeration.mustache 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/CodeAnalysis/GlobalFunctions.mustache new/OrthancPython-3.1/CodeAnalysis/GlobalFunctions.mustache --- old/OrthancPython-3.0/CodeAnalysis/GlobalFunctions.mustache 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/CodeAnalysis/GlobalFunctions.mustache 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/CodeAnalysis/ParseOrthancSDK.py new/OrthancPython-3.1/CodeAnalysis/ParseOrthancSDK.py --- old/OrthancPython-3.0/CodeAnalysis/ParseOrthancSDK.py 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/CodeAnalysis/ParseOrthancSDK.py 2021-01-22 10:08:17.000000000 +0100 @@ -2,7 +2,7 @@ ## ## Python plugin for Orthanc -## Copyright (C) 2017-2020 Osimis S.A., Belgium +## Copyright (C) 2020-2021 Osimis S.A., Belgium ## ## This program is free software: you can redistribute it and/or ## modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/CodeAnalysis/sdk.cpp.mustache new/OrthancPython-3.1/CodeAnalysis/sdk.cpp.mustache --- old/OrthancPython-3.0/CodeAnalysis/sdk.cpp.mustache 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/CodeAnalysis/sdk.cpp.mustache 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/CodeAnalysis/sdk.h.mustache new/OrthancPython-3.1/CodeAnalysis/sdk.h.mustache --- old/OrthancPython-3.0/CodeAnalysis/sdk.h.mustache 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/CodeAnalysis/sdk.h.mustache 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/NEWS new/OrthancPython-3.1/NEWS --- old/OrthancPython-3.0/NEWS 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/NEWS 2021-01-22 10:08:17.000000000 +0100 @@ -2,6 +2,13 @@ =============================== +Version 3.1 (2021-01-22) +======================== + +* Fix possible deadlock with "orthanc.RegisterOnChangeCallback()" +* During Orthanc shutdown, wait for all the pending events to have been processed + + Version 3.0 (2020-12-09) ======================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/CMake/AutoGeneratedCode.cmake new/OrthancPython-3.1/Resources/Orthanc/CMake/AutoGeneratedCode.cmake --- old/OrthancPython-3.0/Resources/Orthanc/CMake/AutoGeneratedCode.cmake 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/CMake/AutoGeneratedCode.cmake 2021-01-22 10:08:17.000000000 +0100 @@ -1,7 +1,7 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2020 Osimis S.A., Belgium +# Copyright (C) 2017-2021 Osimis S.A., Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/CMake/Compiler.cmake new/OrthancPython-3.1/Resources/Orthanc/CMake/Compiler.cmake --- old/OrthancPython-3.0/Resources/Orthanc/CMake/Compiler.cmake 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/CMake/Compiler.cmake 2021-01-22 10:08:17.000000000 +0100 @@ -1,7 +1,7 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2020 Osimis S.A., Belgium +# Copyright (C) 2017-2021 Osimis S.A., Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake new/OrthancPython-3.1/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake --- old/OrthancPython-3.0/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake 2021-01-22 10:08:17.000000000 +0100 @@ -1,7 +1,7 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2020 Osimis S.A., Belgium +# Copyright (C) 2017-2021 Osimis S.A., Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License @@ -120,6 +120,8 @@ set(ORTHANC_FRAMEWORK_MD5 "f8ec7554ef5d23ea4ce474b1e8214de9") elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.8.1") set(ORTHANC_FRAMEWORK_MD5 "db094f96399cbe8b9bbdbce34884c220") + elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.8.2") + set(ORTHANC_FRAMEWORK_MD5 "8bfa10e66c9931e74111be0bfb1f4548") # Below this point are development snapshots that were used to # release some plugin, before an official release of the Orthanc @@ -134,6 +136,12 @@ elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "82652c5fc04f") # Stone Web viewer 1.0 (framework pre-1.8.1) set(ORTHANC_FRAMEWORK_MD5 "d77331d68917e66a3f4f9b807bbdab7f") + elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "4a3ba4bf4ba7") + # PostgreSQL 3.3 (framework pre-1.8.2) + set(ORTHANC_FRAMEWORK_MD5 "2d82bddf06f9cfe82095495cb3b8abde") + elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "23ad1b9c7800") + # For "Toolbox::ReadJson()" and "Toolbox::Write{...}Json()" (pre-1.9.0) + set(ORTHANC_FRAMEWORK_MD5 "9af92080e57c60dd288eba46ce606c00") endif() endif() endif() @@ -529,6 +537,16 @@ include_directories(${DCMTK_INCLUDE_DIRS}) link_libraries(${DCMTK_LIBRARIES}) endif() + + # Optional component - OpenSSL + if (ENABLE_SSL) + include(FindOpenSSL) + if (NOT ${OPENSSL_FOUND}) + message(FATAL_ERROR "Unable to find OpenSSL") + endif() + include_directories(${OPENSSL_INCLUDE_DIR}) + link_libraries(${OPENSSL_LIBRARIES}) + endif() endif() # Look for Orthanc framework shared library diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/CMake/DownloadPackage.cmake new/OrthancPython-3.1/Resources/Orthanc/CMake/DownloadPackage.cmake --- old/OrthancPython-3.0/Resources/Orthanc/CMake/DownloadPackage.cmake 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/CMake/DownloadPackage.cmake 2021-01-22 10:08:17.000000000 +0100 @@ -1,7 +1,7 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2020 Osimis S.A., Belgium +# Copyright (C) 2017-2021 Osimis S.A., Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.cpp new/OrthancPython-3.1/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.cpp --- old/OrthancPython-3.0/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -2,7 +2,7 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2017-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -24,9 +24,33 @@ #include <boost/algorithm/string/predicate.hpp> #include <boost/move/unique_ptr.hpp> #include <boost/thread.hpp> + + #include <json/reader.h> +#include <json/version.h> #include <json/writer.h> +#if !defined(JSONCPP_VERSION_MAJOR) || !defined(JSONCPP_VERSION_MINOR) +# error Cannot access the version of JsonCpp +#endif + + +/** + * We use deprecated "Json::Reader", "Json::StyledWriter" and + * "Json::FastWriter" if JsonCpp < 1.7.0. This choice is rather + * arbitrary, but if Json >= 1.9.0, gcc generates explicit deprecation + * warnings (clang was warning in earlier versions). For reference, + * these classes seem to have been deprecated since JsonCpp 1.4.0 (on + * February 2015) by the following changeset: + * https://github.com/open-source-parsers/jsoncpp/commit/8df98f6112890d6272734975dd6d70cf8999bb22 + **/ +#if (JSONCPP_VERSION_MAJOR >= 2 || \ + (JSONCPP_VERSION_MAJOR == 1 && JSONCPP_VERSION_MINOR >= 8)) +# define JSONCPP_USE_DEPRECATED 0 +#else +# define JSONCPP_USE_DEPRECATED 1 +#endif + #if !ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 2, 0) static const OrthancPluginErrorCode OrthancPluginErrorCode_NullPointer = OrthancPluginErrorCode_Plugin; @@ -202,10 +226,7 @@ ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } - const char* tmp = reinterpret_cast<const char*>(buffer_.data); - - Json::Reader reader; - if (!reader.parse(tmp, tmp + buffer_.size, target)) + if (!ReadJson(target, buffer_.data, buffer_.size)) { LogError("Cannot convert some memory buffer to JSON"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); @@ -292,12 +313,102 @@ } + static bool ReadJsonInternal(Json::Value& target, + const void* buffer, + size_t size, + bool collectComments) + { +#if JSONCPP_USE_DEPRECATED == 1 + Json::Reader reader; + return reader.parse(reinterpret_cast<const char*>(buffer), + reinterpret_cast<const char*>(buffer) + size, target, collectComments); +#else + Json::CharReaderBuilder builder; + builder.settings_["collectComments"] = collectComments; + + const std::unique_ptr<Json::CharReader> reader(builder.newCharReader()); + assert(reader.get() != NULL); + + JSONCPP_STRING err; + if (reader->parse(reinterpret_cast<const char*>(buffer), + reinterpret_cast<const char*>(buffer) + size, &target, &err)) + { + return true; + } + else + { + LogError("Cannot parse JSON: " + std::string(err)); + return false; + } +#endif + } + + + bool ReadJson(Json::Value& target, + const std::string& source) + { + return ReadJson(target, source.empty() ? NULL : source.c_str(), source.size()); + } + + + bool ReadJson(Json::Value& target, + const void* buffer, + size_t size) + { + return ReadJsonInternal(target, buffer, size, true); + } + + + bool ReadJsonWithoutComments(Json::Value& target, + const std::string& source) + { + return ReadJsonWithoutComments(target, source.empty() ? NULL : source.c_str(), source.size()); + } + + + bool ReadJsonWithoutComments(Json::Value& target, + const void* buffer, + size_t size) + { + return ReadJsonInternal(target, buffer, size, false); + } + + + void WriteFastJson(std::string& target, + const Json::Value& source) + { +#if JSONCPP_USE_DEPRECATED == 1 + Json::FastWriter writer; + target = writer.write(source); +#else + Json::StreamWriterBuilder builder; + builder.settings_["indentation"] = ""; + target = Json::writeString(builder, source); +#endif + } + + + void WriteStyledJson(std::string& target, + const Json::Value& source) + { +#if JSONCPP_USE_DEPRECATED == 1 + Json::StyledWriter writer; + target = writer.write(source); +#else + Json::StreamWriterBuilder builder; + builder.settings_["indentation"] = " "; + target = Json::writeString(builder, source); +#endif + } + + bool MemoryBuffer::RestApiPost(const std::string& uri, const Json::Value& body, bool applyPlugins) { - Json::FastWriter writer; - return RestApiPost(uri, writer.write(body), applyPlugins); + std::string s; + WriteFastJson(s, body); + return RestApiPost(uri, s, applyPlugins); } @@ -305,8 +416,9 @@ const Json::Value& body, bool applyPlugins) { - Json::FastWriter writer; - return RestApiPut(uri, writer.write(body), applyPlugins); + std::string s; + WriteFastJson(s, body); + return RestApiPut(uri, s, applyPlugins); } @@ -315,8 +427,8 @@ { Clear(); - Json::FastWriter writer; - std::string s = writer.write(tags); + std::string s; + WriteFastJson(s, tags); Check(OrthancPluginCreateDicom(GetGlobalContext(), &buffer_, s.c_str(), NULL, flags)); } @@ -327,8 +439,8 @@ { Clear(); - Json::FastWriter writer; - std::string s = writer.write(tags); + std::string s; + WriteFastJson(s, tags); Check(OrthancPluginCreateDicom(GetGlobalContext(), &buffer_, s.c_str(), pixelData.GetObject(), flags)); } @@ -390,8 +502,7 @@ ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } - Json::Reader reader; - if (!reader.parse(str_, target)) + if (!ReadJson(target, str_)) { LogError("Cannot convert some memory buffer to JSON"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); @@ -1190,19 +1301,16 @@ #endif /* HAS_ORTHANC_PLUGIN_FIND_MATCHER == 1 */ void AnswerJson(const Json::Value& value, - OrthancPluginRestOutput* output - ) + OrthancPluginRestOutput* output) { - Json::StyledWriter writer; - std::string bodyString = writer.write(value); - + std::string bodyString; + WriteStyledJson(bodyString, value); OrthancPluginAnswerBuffer(GetGlobalContext(), output, bodyString.c_str(), bodyString.size(), "application/json"); } void AnswerString(const std::string& answer, const char* mimeType, - OrthancPluginRestOutput* output - ) + OrthancPluginRestOutput* output) { OrthancPluginAnswerBuffer(GetGlobalContext(), output, answer.c_str(), answer.size(), mimeType); } @@ -1324,8 +1432,9 @@ const Json::Value& body, bool applyPlugins) { - Json::FastWriter writer; - return RestApiPost(result, uri, writer.write(body), applyPlugins); + std::string s; + WriteFastJson(s, body); + return RestApiPost(result, uri, s, applyPlugins); } @@ -1357,8 +1466,9 @@ const Json::Value& body, bool applyPlugins) { - Json::FastWriter writer; - return RestApiPut(result, uri, writer.write(body), applyPlugins); + std::string s; + WriteFastJson(s, body); + return RestApiPut(result, uri, s, applyPlugins); } @@ -2020,8 +2130,7 @@ } else { - Json::FastWriter writer; - content_ = writer.write(content); + WriteFastJson(content_, content); } } @@ -2041,8 +2150,7 @@ } else { - Json::FastWriter writer; - serialized_ = writer.write(serialized); + WriteFastJson(serialized_, serialized); hasSerialized_ = true; } } @@ -2902,8 +3010,7 @@ std::string body; Execute(answerHeaders, body); - Json::Reader reader; - if (!reader.parse(body, answerBody)) + if (!ReadJson(answerBody, body)) { LogError("Cannot convert HTTP answer body to JSON"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h new/OrthancPython-3.1/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h --- old/OrthancPython-3.0/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h 2021-01-22 10:08:17.000000000 +0100 @@ -2,7 +2,7 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2017-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -476,6 +476,26 @@ #endif + bool ReadJson(Json::Value& target, + const std::string& source); + + bool ReadJson(Json::Value& target, + const void* buffer, + size_t size); + + bool ReadJsonWithoutComments(Json::Value& target, + const std::string& source); + + bool ReadJsonWithoutComments(Json::Value& target, + const void* buffer, + size_t size); + + void WriteFastJson(std::string& target, + const Json::Value& source); + + void WriteStyledJson(std::string& target, + const Json::Value& source); + bool RestApiGet(Json::Value& result, const std::string& uri, bool applyPlugins); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/Plugins/OrthancPluginException.h new/OrthancPython-3.1/Resources/Orthanc/Plugins/OrthancPluginException.h --- old/OrthancPython-3.0/Resources/Orthanc/Plugins/OrthancPluginException.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/Plugins/OrthancPluginException.h 2021-01-22 10:08:17.000000000 +0100 @@ -2,7 +2,7 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2017-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake new/OrthancPython-3.1/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake --- old/OrthancPython-3.0/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake 2021-01-22 10:08:17.000000000 +0100 @@ -1,7 +1,7 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2020 Osimis S.A., Belgium +# Copyright (C) 2017-2021 Osimis S.A., Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/Toolchains/LinuxStandardBaseToolchain.cmake new/OrthancPython-3.1/Resources/Orthanc/Toolchains/LinuxStandardBaseToolchain.cmake --- old/OrthancPython-3.0/Resources/Orthanc/Toolchains/LinuxStandardBaseToolchain.cmake 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/Toolchains/LinuxStandardBaseToolchain.cmake 2021-01-22 10:08:17.000000000 +0100 @@ -1,7 +1,7 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2020 Osimis S.A., Belgium +# Copyright (C) 2017-2021 Osimis S.A., Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/Toolchains/MinGW-W64-Toolchain32.cmake new/OrthancPython-3.1/Resources/Orthanc/Toolchains/MinGW-W64-Toolchain32.cmake --- old/OrthancPython-3.0/Resources/Orthanc/Toolchains/MinGW-W64-Toolchain32.cmake 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/Toolchains/MinGW-W64-Toolchain32.cmake 2021-01-22 10:08:17.000000000 +0100 @@ -1,7 +1,7 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2020 Osimis S.A., Belgium +# Copyright (C) 2017-2021 Osimis S.A., Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/Toolchains/MinGW-W64-Toolchain64.cmake new/OrthancPython-3.1/Resources/Orthanc/Toolchains/MinGW-W64-Toolchain64.cmake --- old/OrthancPython-3.0/Resources/Orthanc/Toolchains/MinGW-W64-Toolchain64.cmake 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/Toolchains/MinGW-W64-Toolchain64.cmake 2021-01-22 10:08:17.000000000 +0100 @@ -1,7 +1,7 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2020 Osimis S.A., Belgium +# Copyright (C) 2017-2021 Osimis S.A., Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Resources/Orthanc/Toolchains/MinGWToolchain.cmake new/OrthancPython-3.1/Resources/Orthanc/Toolchains/MinGWToolchain.cmake --- old/OrthancPython-3.0/Resources/Orthanc/Toolchains/MinGWToolchain.cmake 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Resources/Orthanc/Toolchains/MinGWToolchain.cmake 2021-01-22 10:08:17.000000000 +0100 @@ -1,7 +1,7 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2020 Osimis S.A., Belgium +# Copyright (C) 2017-2021 Osimis S.A., Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk.cpp new/OrthancPython-3.1/Sources/Autogenerated/sdk.cpp --- old/OrthancPython-3.0/Sources/Autogenerated/sdk.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk.h new/OrthancPython-3.1/Sources/Autogenerated/sdk.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_GlobalFunctions.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_GlobalFunctions.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_GlobalFunctions.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_GlobalFunctions.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginChangeType.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginChangeType.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginChangeType.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginChangeType.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginCompressionType.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginCompressionType.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginCompressionType.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginCompressionType.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginConstraintType.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginConstraintType.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginConstraintType.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginConstraintType.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginContentType.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginContentType.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginContentType.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginContentType.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginCreateDicomFlags.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginCreateDicomFlags.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginCreateDicomFlags.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginCreateDicomFlags.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomInstance.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomInstance.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomInstance.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomInstance.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomToJsonFlags.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomToJsonFlags.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomToJsonFlags.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomToJsonFlags.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomToJsonFormat.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomToJsonFormat.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomToJsonFormat.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomToJsonFormat.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomWebBinaryMode.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomWebBinaryMode.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomWebBinaryMode.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomWebBinaryMode.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomWebNode.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomWebNode.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginDicomWebNode.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginDicomWebNode.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginErrorCode.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginErrorCode.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginErrorCode.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginErrorCode.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginFindAnswers.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginFindAnswers.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginFindAnswers.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginFindAnswers.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginFindMatcher.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginFindMatcher.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginFindMatcher.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginFindMatcher.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginFindQuery.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginFindQuery.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginFindQuery.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginFindQuery.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginHttpMethod.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginHttpMethod.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginHttpMethod.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginHttpMethod.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginIdentifierConstraint.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginIdentifierConstraint.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginIdentifierConstraint.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginIdentifierConstraint.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginImage.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginImage.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginImage.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginImage.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginImageFormat.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginImageFormat.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginImageFormat.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginImageFormat.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginInstanceOrigin.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginInstanceOrigin.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginInstanceOrigin.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginInstanceOrigin.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginJob.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginJob.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginJob.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginJob.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginJobStepStatus.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginJobStepStatus.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginJobStepStatus.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginJobStepStatus.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginJobStopReason.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginJobStopReason.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginJobStopReason.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginJobStopReason.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginMetricsType.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginMetricsType.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginMetricsType.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginMetricsType.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginPeers.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginPeers.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginPeers.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginPeers.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginPixelFormat.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginPixelFormat.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginPixelFormat.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginPixelFormat.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginResourceType.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginResourceType.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginResourceType.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginResourceType.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginRestOutput.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginRestOutput.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginRestOutput.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginRestOutput.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginServerChunkedRequestReader.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginServerChunkedRequestReader.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginServerChunkedRequestReader.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginServerChunkedRequestReader.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginStorageArea.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginStorageArea.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginStorageArea.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginStorageArea.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginStorageCommitmentFailureReason.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginStorageCommitmentFailureReason.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginStorageCommitmentFailureReason.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginStorageCommitmentFailureReason.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginValueRepresentation.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginValueRepresentation.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginValueRepresentation.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginValueRepresentation.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginWorklistQuery.impl.h new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginWorklistQuery.impl.h --- old/OrthancPython-3.0/Sources/Autogenerated/sdk_OrthancPluginWorklistQuery.impl.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Autogenerated/sdk_OrthancPluginWorklistQuery.impl.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/IncomingHttpRequestFilter.cpp new/OrthancPython-3.1/Sources/IncomingHttpRequestFilter.cpp --- old/OrthancPython-3.0/Sources/IncomingHttpRequestFilter.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/IncomingHttpRequestFilter.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/IncomingHttpRequestFilter.h new/OrthancPython-3.1/Sources/IncomingHttpRequestFilter.h --- old/OrthancPython-3.0/Sources/IncomingHttpRequestFilter.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/IncomingHttpRequestFilter.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/OnChangeCallback.cpp new/OrthancPython-3.1/Sources/OnChangeCallback.cpp --- old/OrthancPython-3.0/Sources/OnChangeCallback.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/OnChangeCallback.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License @@ -70,6 +70,8 @@ +// This corresponds to a simplified, standalone version of +// "Orthanc::SharedMessageQueue" from the Orthanc framework class PendingChanges : public boost::noncopyable { private: @@ -133,6 +135,17 @@ static PyObject* changesCallback_ = NULL; +static void StopThread() +{ + stopping_ = true; + + if (changesThread_.joinable()) + { + changesThread_.join(); + } +} + + static void ChangesWorker() { while (!stopping_) @@ -181,9 +194,11 @@ OrthancPluginResourceType resourceType, const char* resourceId) { + pendingChanges_.Enqueue(changeType, resourceType, resourceId); + + if (changeType == OrthancPluginChangeType_OrthancStopped) { - PythonLock lock; - pendingChanges_.Enqueue(changeType, resourceType, resourceId); + StopThread(); } return OrthancPluginErrorCode_Success; @@ -229,12 +244,7 @@ void FinalizeOnChangeCallback() { - stopping_ = true; - - if (changesThread_.joinable()) - { - changesThread_.join(); - } + StopThread(); { PythonLock lock; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/OnChangeCallback.h new/OrthancPython-3.1/Sources/OnChangeCallback.h --- old/OrthancPython-3.0/Sources/OnChangeCallback.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/OnChangeCallback.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/OnStoredInstanceCallback.cpp new/OrthancPython-3.1/Sources/OnStoredInstanceCallback.cpp --- old/OrthancPython-3.0/Sources/OnStoredInstanceCallback.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/OnStoredInstanceCallback.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/OnStoredInstanceCallback.h new/OrthancPython-3.1/Sources/OnStoredInstanceCallback.h --- old/OrthancPython-3.0/Sources/OnStoredInstanceCallback.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/OnStoredInstanceCallback.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/Plugin.cpp new/OrthancPython-3.1/Sources/Plugin.cpp --- old/OrthancPython-3.0/Sources/Plugin.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/Plugin.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonFunction.cpp new/OrthancPython-3.1/Sources/PythonFunction.cpp --- old/OrthancPython-3.0/Sources/PythonFunction.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonFunction.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonFunction.h new/OrthancPython-3.1/Sources/PythonFunction.h --- old/OrthancPython-3.0/Sources/PythonFunction.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonFunction.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonHeaderWrapper.h new/OrthancPython-3.1/Sources/PythonHeaderWrapper.h --- old/OrthancPython-3.0/Sources/PythonHeaderWrapper.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonHeaderWrapper.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonLock.cpp new/OrthancPython-3.1/Sources/PythonLock.cpp --- old/OrthancPython-3.0/Sources/PythonLock.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonLock.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonLock.h new/OrthancPython-3.1/Sources/PythonLock.h --- old/OrthancPython-3.0/Sources/PythonLock.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonLock.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonModule.cpp new/OrthancPython-3.1/Sources/PythonModule.cpp --- old/OrthancPython-3.0/Sources/PythonModule.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonModule.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonModule.h new/OrthancPython-3.1/Sources/PythonModule.h --- old/OrthancPython-3.0/Sources/PythonModule.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonModule.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** 2 * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonObject.cpp new/OrthancPython-3.1/Sources/PythonObject.cpp --- old/OrthancPython-3.0/Sources/PythonObject.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonObject.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonObject.h new/OrthancPython-3.1/Sources/PythonObject.h --- old/OrthancPython-3.0/Sources/PythonObject.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonObject.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonString.cpp new/OrthancPython-3.1/Sources/PythonString.cpp --- old/OrthancPython-3.0/Sources/PythonString.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonString.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/PythonString.h new/OrthancPython-3.1/Sources/PythonString.h --- old/OrthancPython-3.0/Sources/PythonString.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/PythonString.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/RestCallbacks.cpp new/OrthancPython-3.1/Sources/RestCallbacks.cpp --- old/OrthancPython-3.0/Sources/RestCallbacks.cpp 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/RestCallbacks.cpp 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.0/Sources/RestCallbacks.h new/OrthancPython-3.1/Sources/RestCallbacks.h --- old/OrthancPython-3.0/Sources/RestCallbacks.h 2020-12-09 17:30:15.000000000 +0100 +++ new/OrthancPython-3.1/Sources/RestCallbacks.h 2021-01-22 10:08:17.000000000 +0100 @@ -1,6 +1,6 @@ /** * Python plugin for Orthanc - * Copyright (C) 2017-2020 Osimis S.A., Belgium + * Copyright (C) 2020-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License