Mercurial > hg > orthanc-databases
changeset 299:70685295a373
added OrthancDatabases::EnumerationToString(ValueType)
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 01 Jul 2021 16:25:41 +0200 |
parents | 8f655f308de9 |
children | a116dbdf9118 |
files | Framework/Common/DatabasesEnumerations.cpp Framework/Common/DatabasesEnumerations.h Framework/Common/GenericFormatter.cpp Framework/Common/GenericFormatter.h Resources/CMake/DatabasesFrameworkConfiguration.cmake |
diffstat | 5 files changed, 68 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Framework/Common/DatabasesEnumerations.cpp Thu Jul 01 16:25:41 2021 +0200 @@ -0,0 +1,54 @@ +/** + * Orthanc - A Lightweight, RESTful DICOM Store + * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics + * Department, University Hospital of Liege, 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 Affero General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + **/ + + +#include "DatabasesEnumerations.h" + +#include <OrthancException.h> + +namespace OrthancDatabases +{ + const char* EnumerationToString(ValueType type) + { + switch (type) + { + case ValueType_BinaryString: + return "BinaryString"; + + case ValueType_InputFile: + return "InputFile"; + + case ValueType_Integer64: + return "Integer64"; + + case ValueType_Null: + return "Null"; + + case ValueType_ResultFile: + return "ResultFile"; + + case ValueType_Utf8String: + return "Utf8String"; + + default: + throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); + } + } +}
--- a/Framework/Common/DatabasesEnumerations.h Thu Jul 01 14:39:27 2021 +0200 +++ b/Framework/Common/DatabasesEnumerations.h Thu Jul 01 16:25:41 2021 +0200 @@ -49,4 +49,6 @@ TransactionType_ReadOnly, // Should only arise with Orthanc SDK >= 1.9.2 in the index plugin TransactionType_Implicit // Should only arise with Orthanc SDK <= 1.9.1 }; + + const char* EnumerationToString(ValueType type); }
--- a/Framework/Common/GenericFormatter.cpp Thu Jul 01 14:39:27 2021 +0200 +++ b/Framework/Common/GenericFormatter.cpp Thu Jul 01 16:25:41 2021 +0200 @@ -51,6 +51,14 @@ } else { + if (allNames_.find(source) != allNames_.end()) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls, + "Parameter ${" + source + "} registered twice"); + } + + allNames_.insert(source); + switch (dialect_) { case Dialect_PostgreSQL:
--- a/Framework/Common/GenericFormatter.h Thu Jul 01 14:39:27 2021 +0200 +++ b/Framework/Common/GenericFormatter.h Thu Jul 01 16:25:41 2021 +0200 @@ -25,6 +25,8 @@ #include <Compatibility.h> +#include <set> + namespace OrthancDatabases { class GenericFormatter : public Query::IParameterFormatter @@ -33,6 +35,7 @@ Dialect dialect_; std::vector<std::string> parametersName_; std::vector<ValueType> parametersType_; + std::set<std::string> allNames_; public: explicit GenericFormatter(Dialect dialect) :
--- a/Resources/CMake/DatabasesFrameworkConfiguration.cmake Thu Jul 01 14:39:27 2021 +0200 +++ b/Resources/CMake/DatabasesFrameworkConfiguration.cmake Thu Jul 01 16:25:41 2021 +0200 @@ -97,6 +97,7 @@ set(DATABASES_SOURCES ${ORTHANC_DATABASES_ROOT}/Framework/Common/BinaryStringValue.cpp ${ORTHANC_DATABASES_ROOT}/Framework/Common/DatabaseManager.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/DatabasesEnumerations.cpp ${ORTHANC_DATABASES_ROOT}/Framework/Common/Dictionary.cpp ${ORTHANC_DATABASES_ROOT}/Framework/Common/GenericFormatter.cpp ${ORTHANC_DATABASES_ROOT}/Framework/Common/IResult.cpp