view OrthancFramework/Sources/Constants.h @ 7129:662d58ce7ddf Orthanc-1.13.0

Orthanc-1.13.0
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 15 Aug 2026 13:53:33 +0200
parents 1c3879dd6b89
children
line wrap: on
line source

/**
 * 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-2026 Orthanc Team SRL, Belgium
 * Copyright (C) 2021-2026 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

#include <stdint.h>


namespace Orthanc
{
  static const uint64_t KILOBYTE = 1024ull;
  static const uint64_t MEGABYTE = 1024ull * 1024ull;
  static const uint64_t GIGABYTE = 1024ull * 1024ull * 1024ull;

  inline float BytesToFloatMegabytes(uint64_t size)
  {
    return static_cast<float>(size) / static_cast<float>(MEGABYTE);
  }

  inline unsigned int BytesToMegabytes(uint64_t size)
  {
    return size / MEGABYTE;
  }

  static const uint64_t MAX_IMAGE_FRAME_SIZE = (sizeof(void*) == 4
                                                ? 1 * Orthanc::GIGABYTE   // 1 GB on 32 bits system
                                                : 4 * Orthanc::GIGABYTE); // 4 GB on 64 bits system
}