// Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
//
// NVIDIA CORPORATION and its licensors retain all intellectual property
// and proprietary rights in and to this software, related documentation
// and any modifications thereto.  Any use, reproduction, disclosure or
// distribution of this software and related documentation without an express
// license agreement from NVIDIA CORPORATION is strictly prohibited.
//
#pragma once

#include <omni/kit/SettingsUtils.h>

#define RESOURCE_MONITOR_SETTING_GROUP_CONTEXT "resourcemonitor"

#define RESOURCE_MONITOR_SETTING_TIME_BETWEEN_QUERIES "timeBetweenQueries"
#define RESOURCE_MONITOR_SETTING_SEND_DEVICE_MEMORY_WARNING "sendDeviceMemoryWarning"
#define RESOURCE_MONITOR_SETTING_DEVICE_MEMORY_WARN_MB "deviceMemoryWarnMB"
#define RESOURCE_MONITOR_SETTING_DEVICE_MEMORY_WARN_FRACTION "deviceMemoryWarnFraction"
#define RESOURCE_MONITOR_SETTING_SEND_HOST_MEMORY_WARNING "sendHostMemoryWarning"
#define RESOURCE_MONITOR_SETTING_HOST_MEMORY_WARN_MB "hostMemoryWarnMB"
#define RESOURCE_MONITOR_SETTING_HOST_MEMORY_WARN_FRACTION "hostMemoryWarnFraction"

namespace omni
{
namespace resourcemonitor
{

constexpr const char* const kSettingTimeBetweenQueries =
    PERSISTENT_SETTINGS_PREFIX SETTING_SEP RESOURCE_MONITOR_SETTING_GROUP_CONTEXT SETTING_SEP \
    RESOURCE_MONITOR_SETTING_TIME_BETWEEN_QUERIES;

constexpr const char* const kSettingSendDeviceMemoryWarning =
    PERSISTENT_SETTINGS_PREFIX SETTING_SEP RESOURCE_MONITOR_SETTING_GROUP_CONTEXT SETTING_SEP \
    RESOURCE_MONITOR_SETTING_SEND_DEVICE_MEMORY_WARNING;

constexpr const char* const kSettingDeviceMemoryWarnMB =
    PERSISTENT_SETTINGS_PREFIX SETTING_SEP RESOURCE_MONITOR_SETTING_GROUP_CONTEXT SETTING_SEP \
    RESOURCE_MONITOR_SETTING_DEVICE_MEMORY_WARN_MB;

constexpr const char* const kSettingDeviceMemoryWarnFraction =
    PERSISTENT_SETTINGS_PREFIX SETTING_SEP RESOURCE_MONITOR_SETTING_GROUP_CONTEXT SETTING_SEP \
    RESOURCE_MONITOR_SETTING_DEVICE_MEMORY_WARN_FRACTION;

constexpr const char* const kSettingSendHostMemoryWarning =
    PERSISTENT_SETTINGS_PREFIX SETTING_SEP RESOURCE_MONITOR_SETTING_GROUP_CONTEXT SETTING_SEP \
    RESOURCE_MONITOR_SETTING_SEND_HOST_MEMORY_WARNING;

constexpr const char* const kSettingHostMemoryWarnMB =
    PERSISTENT_SETTINGS_PREFIX SETTING_SEP RESOURCE_MONITOR_SETTING_GROUP_CONTEXT SETTING_SEP \
    RESOURCE_MONITOR_SETTING_HOST_MEMORY_WARN_MB;

constexpr const char* const kSettingHostMemoryWarnFraction =
    PERSISTENT_SETTINGS_PREFIX SETTING_SEP RESOURCE_MONITOR_SETTING_GROUP_CONTEXT SETTING_SEP \
    RESOURCE_MONITOR_SETTING_HOST_MEMORY_WARN_FRACTION;

}
}
