NVIDIA NvNeural SDK  2022.2
GPU inference framework for NVIDIA Nsight Deep Learning Designer
nvneural::BufferedLogger Class Reference

BufferedLogger is a default implementation of IBufferedLogger. More...

#include <BufferedLogger.h>

Inheritance diagram for nvneural::BufferedLogger:
nvneural::IBufferedLogger nvneural::ILogger nvneural::IRefObject nvneural::IRefObject

Public Member Functions

IRefObject::RefCount addRef () const noexcept
 Increments the object's reference count. More...
 
NeuralResult forwardBufferedLogs (ILogger *pDestinationLogger) noexcept
 Forwards stored logs to a target logger. More...
 
NeuralResult log (VerbosityLevel verbosity, const char *format,...) noexcept
 Logs an informational message. More...
 
NeuralResult logError (VerbosityLevel verbosity, const char *format,...) noexcept
 Logs an error message. More...
 
NeuralResult logWarning (VerbosityLevel verbosity, const char *format,...) noexcept
 Logs a warning message. More...
 
const void * queryInterface (IRefObject::TypeId interface) const noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void * queryInterface (IRefObject::TypeId interface) noexcept
 Retrieves a new object interface pointer. More...
 
IRefObject::RefCount release () const noexcept
 Decrements the object's reference count and destroy the object if the reference count reaches zero. More...
 
ILogger::VerbosityLevel verbosity () const noexcept
 Retrieves the current verbosity level. More...
 

Additional Inherited Members

- Public Types inherited from nvneural::IRefObject
using RefCount = std::uint32_t
 Typedef used to track the number of active references to an object.
 
using TypeId = std::uint64_t
 Every interface must define a unique TypeId. This should be randomized.
 
- Public Types inherited from nvneural::ILogger
using VerbosityLevel = std::int32_t
 Typedef for verbosity levels. More...
 
- Static Public Attributes inherited from nvneural::IBufferedLogger
static const IRefObject::TypeId typeID = 0xb19309bc19e64b5dul
 Interface TypeId for InterfaceOf purposes.
 
- Static Public Attributes inherited from nvneural::IRefObject
static const TypeId typeID = 0x14ecc3f9de638e1dul
 Interface TypeId for InterfaceOf purposes.
 
- Static Public Attributes inherited from nvneural::ILogger
static const IRefObject::TypeId typeID = 0xd74335d06aa1ba61ul
 Interface TypeId for InterfaceOf purposes.
 
- Protected Member Functions inherited from nvneural::IRefObject
virtual ~IRefObject ()=default
 A protected destructor prevents accidental stack-allocation of IRefObjects or use with other smart pointer classes like std::unique_ptr.
 

Detailed Description

BufferedLogger is a default implementation of IBufferedLogger.

It does not use RefObjectBase to prevent RefObjectBase lifecycle logging from reentering itself.

Member Function Documentation

◆ addRef()

IRefObject::RefCount BufferedLogger::addRef ( ) const
virtualnoexcept

Increments the object's reference count.

Returns
The new reference count. Should be used only for debugging.

Implements nvneural::IRefObject.

◆ forwardBufferedLogs()

NeuralResult BufferedLogger::forwardBufferedLogs ( ILogger pDestinationLogger)
virtualnoexcept

Forwards stored logs to a target logger.

Parameters
pDestinationLoggerLogger to forward to.

Implements nvneural::IBufferedLogger.

◆ log()

NeuralResult BufferedLogger::log ( VerbosityLevel  verbosity,
const char *  format,
  ... 
)
virtualnoexcept

Logs an informational message.

Parameters
verbosityVerbosity level of the message.
formatPrintf-style format string.
Note
If verbosity is higher than the current verbosity level, this function may exit silently with a successful result.

Implements nvneural::ILogger.

◆ logError()

NeuralResult BufferedLogger::logError ( VerbosityLevel  verbosity,
const char *  format,
  ... 
)
virtualnoexcept

Logs an error message.

Error messages indicate a serious failure has occurred and the user's workflow must stop. Recoverable or expected failures should probably be warnings, not errors.

Under normal conditions, plugins should not emit error messages at verbosity level 0.

Error messages do not necessarily have to be fatal errors and result in application exit; a failure to export a model because of insufficient disk space is a legitimate error message but would not require the model editor to exit.

Parameters
verbosityVerbosity level of the message.
formatPrintf-style format string.
Note
If verbosity is higher than the current verbosity level, this function may exit silently with a successful result.

Implements nvneural::ILogger.

◆ logWarning()

NeuralResult BufferedLogger::logWarning ( VerbosityLevel  verbosity,
const char *  format,
  ... 
)
virtualnoexcept

Logs a warning message.

Warning messages indicate transient failures that the user should be aware of, but which did not result in failure of a major operation.

Under normal conditions, plugins should not emit warning messages at verbosity level 0.

Parameters
verbosityVerbosity level of the message.
formatPrintf-style format string.
Note
If verbosity is higher than the current verbosity level, this function may exit silently with a successful result.

Implements nvneural::ILogger.

◆ queryInterface()

void * BufferedLogger::queryInterface ( IRefObject::TypeId  interface)
virtualnoexcept

Retrieves a new object interface pointer.

Parameters
interfaceTypeId of the interface to convert to.
Returns
A new interface pointer suitable for static_cast<> from void, or nullptr on failure or if the interface is unsupported.
Note
Calls addRef on the resulting pointer.
Remarks
The standard rules of COM IUnknown::QueryInterface apply:
  1. Do not dynamically add or remove interfaces to an object.
  2. Reflexive rule: Querying for the interface you already have must succeed and return an identical pointer.
  3. Symmetric rule: All successful queries must be bidirectional.
  4. Transitive rule: Querying through intermediary interfaces must yield the same result as querying directly for the final interface.

Implements nvneural::IRefObject.

◆ release()

IRefObject::RefCount BufferedLogger::release ( ) const
virtualnoexcept

Decrements the object's reference count and destroy the object if the reference count reaches zero.

Returns
The new reference count. Should be used only for debugging.

Implements nvneural::IRefObject.

◆ verbosity()

ILogger::VerbosityLevel BufferedLogger::verbosity ( ) const
virtualnoexcept

Retrieves the current verbosity level.

Note
You should not need this function under normal circumstances. The normal log methods will exit early when logging more verbosely than the application demands. This function exists to allow you to skip expensive formatting operations (string allocations, etc.) that must be performed for the log methods' printf formatting interface.

Implements nvneural::ILogger.


The documentation for this class was generated from the following files: