omni/connect/core/LiveSessionConfig.h

File members: omni/connect/core/LiveSessionConfig.h

// SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: LicenseRef-NvidiaProprietary
//
// NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
// property and proprietary rights in and to this material, related
// documentation and any modifications thereto. Any use, reproduction,
// disclosure or distribution of this material and related documentation
// without an express license agreement from NVIDIA CORPORATION or
// its affiliates is strictly prohibited.

#pragma once

#include "Api.h"

#if OMNICONNECTCORE_WITH_NUCLEUS

#include <map>
#include <string>

namespace omni::connect::core
{

// clang-format off
enum class LiveSessionConfig
{
    eVersion,
    eAdmin,
    eStageUri,
    eMode,
    eDescription,
    eName,
    eInvalid
};
// clang-format on

using LiveSessionConfigMap = std::map<LiveSessionConfig, std::string>;

static constexpr const char* kLiveSessionConfigVersion = "1.0";

static constexpr const char* kLiveSessionLinkKey = "live_session_name";

OMNICONNECTCORE_API bool createLiveSessionConfigFile(const std::string& uri, const LiveSessionConfigMap& config);

OMNICONNECTCORE_API bool setLiveSessionConfigValues(const std::string& uri, const LiveSessionConfigMap& config);

OMNICONNECTCORE_API LiveSessionConfigMap getLiveSessionConfig(const std::string& uri);

OMNICONNECTCORE_API bool isLiveSessionVersionCompatible(const std::string& uri);

} // namespace omni::connect::core

#endif // OMNICONNECTCORE_WITH_NUCLEUS