Orthanc/OrthancFramework/Sources/OrthancFramework.h
2025-06-23 19:07:37 +05:30

85 lines
2.8 KiB
C++

/**
* Orthanc - A Lightweight, RESTful DICOM Store
* Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
* Department, University Hospital of Liege, Belgium
* Copyright (C) 2017-2023 Osimis S.A., Belgium
* Copyright (C) 2024-2025 Orthanc Team SRL, Belgium
* Copyright (C) 2021-2025 Sebastien Jodogne, ICTEAM UCLouvain, Belgium
*
* This program is free software: you can redistribute it and/or
* modify it under the terms of the GNU Lesser 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/>.
**/
#pragma once
/**
* Besides the "pragma once" above that only protects this file,
* define a macro to prevent including different versions of
* "OrthancFramework.h"
**/
#ifndef __ORTHANC_FRAMEWORK_H
#define __ORTHANC_FRAMEWORK_H
#if !defined(ORTHANC_BUILDING_FRAMEWORK_LIBRARY)
# error The macro ORTHANC_BUILDING_FRAMEWORK_LIBRARY must be defined
#endif
/**
* It is implied that if this file is used, we're building the Orthanc
* framework (not using it as a shared library): We don't use the
* common "BUILDING_DLL"
* construction. https://gcc.gnu.org/wiki/Visibility
**/
#if ORTHANC_BUILDING_FRAMEWORK_LIBRARY == 1
# if defined(_WIN32) || defined (__CYGWIN__)
# define ORTHANC_PUBLIC __declspec(dllexport)
# define ORTHANC_LOCAL
# else
# if __GNUC__ >= 4
# define ORTHANC_PUBLIC __attribute__((visibility ("default")))
# define ORTHANC_LOCAL __attribute__((visibility ("hidden")))
# else
# define ORTHANC_PUBLIC
# define ORTHANC_LOCAL
# pragma warning Unknown dynamic link import/export semantics
# endif
# endif
#else
# define ORTHANC_PUBLIC
# define ORTHANC_LOCAL
#endif
#define ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(major, minor, revision) \
(ORTHANC_VERSION_MAJOR > major || \
(ORTHANC_VERSION_MAJOR == major && \
(ORTHANC_VERSION_MINOR > minor || \
(ORTHANC_VERSION_MINOR == minor && \
ORTHANC_VERSION_REVISION >= revision))))
#include <string>
namespace Orthanc
{
ORTHANC_PUBLIC void InitializeFramework(const std::string& locale,
bool loadPrivateDictionary);
ORTHANC_PUBLIC void FinalizeFramework();
}
#endif /* __ORTHANC_FRAMEWORK_H */