ILogMessageConsumer2.h#

Fully qualified name: omni/log/ILogMessageConsumer2.h

File members: omni/log/ILogMessageConsumer2.h

// Copyright (c) 2025, 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 "ILog.h"

#include "../../carb/logging/Logger.h"

#if CARB_VERSION_ATLEAST(carb_logging_ILogging, 1, 3) || defined(OMNI_BIND)

namespace omni
{
namespace log
{

class ILogMessageConsumer2_abi;
class ILogMessageConsumer2;

class OMNI_ATTR("no_gil") ILogMessageConsumer2_abi
    : public omni::core::Inherits<ILogMessageConsumer_abi, OMNI_TYPE_ID("omni.log.ILogMessageConsumer2")>
{
protected:
    virtual OMNI_ATTR("no_gil") void onMessage_abi(const carb::logging::LogMessage& msg) noexcept = 0;

    // Silence Clang warning about hiding overloaded virtual function
    using ILogMessageConsumer_abi::onMessage_abi;
};

} // namespace log
} // namespace omni

#    define OMNI_BIND_INCLUDE_INTERFACE_DECL
#    include "ILogMessageConsumer2.gen.h"

class omni::log::ILogMessageConsumer2 : public omni::core::Generated<omni::log::ILogMessageConsumer2_abi>
{
};

#    define OMNI_BIND_INCLUDE_INTERFACE_IMPL
#    include "ILogMessageConsumer2.gen.h"

#endif