26 #ifndef NVNEURAL_BUFFEREDLOGGER_H
27 #define NVNEURAL_BUFFEREDLOGGER_H
95 NeuralResult forwardLogEntryUnderLock(
const LogEntry& logEntry) noexcept;
98 std::mutex m_logMutex;
99 std::vector<LogEntry> m_logBuffer;
100 mutable std::atomic<IRefObject::RefCount> m_refCount{1u};
Common helper classes and template function implementations.
NeuralResult
NeuralResult is a generic success/failure result type similar to COM HRESULT.
Definition: CoreTypes.h:275
BufferedLogger is a default implementation of IBufferedLogger.
Definition: BufferedLogger.h:62
NeuralResult logWarning(VerbosityLevel verbosity, const char *format,...) noexcept
Logs a warning message.
Definition: BufferedLogger.cpp:104
NeuralResult forwardBufferedLogs(ILogger *pDestinationLogger) noexcept
Forwards stored logs to a target logger.
Definition: BufferedLogger.cpp:122
void * queryInterface(IRefObject::TypeId interface) noexcept
Retrieves a new object interface pointer.
Definition: BufferedLogger.cpp:46
NeuralResult log(VerbosityLevel verbosity, const char *format,...) noexcept
Logs an informational message.
Definition: BufferedLogger.cpp:95
IRefObject::RefCount release() const noexcept
Decrements the object's reference count and destroy the object if the reference count reaches zero.
Definition: BufferedLogger.cpp:36
IRefObject::RefCount addRef() const noexcept
Increments the object's reference count.
Definition: BufferedLogger.cpp:30
ILogger::VerbosityLevel verbosity() const noexcept
Retrieves the current verbosity level.
Definition: BufferedLogger.cpp:90
NeuralResult logError(VerbosityLevel verbosity, const char *format,...) noexcept
Logs an error message.
Definition: BufferedLogger.cpp:113
Buffering loggers store log messages during startup.
Definition: BufferedLogger.h:47
static const IRefObject::TypeId typeID
Interface TypeId for InterfaceOf purposes.
Definition: BufferedLogger.h:50
virtual NeuralResult forwardBufferedLogs(ILogger *pDestinationLogger) noexcept=0
Forwards stored logs to a target logger.
Logger interface class.
Definition: CoreTypes.h:414
std::int32_t VerbosityLevel
Typedef for verbosity levels.
Definition: CoreTypes.h:424
Base class for all objects, similar to COM's IUnknown.
Definition: CoreTypes.h:343
std::uint64_t TypeId
Every interface must define a unique TypeId. This should be randomized.
Definition: CoreTypes.h:349
std::uint32_t RefCount
Typedef used to track the number of active references to an object.
Definition: CoreTypes.h:346
Intrusive pointer using IRefObject's reference counting system.
Definition: RefPtr.h:46