CommonLibVR
ErrorLogger.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTEvent.h"
4 #include "RE/B/BSTHashMap.h"
5 
6 namespace RE
7 {
8  namespace BSScript
9  {
10  struct LogEvent;
11 
12  class ErrorLogger : public BSTEventSource<LogEvent>
13  {
14  public:
15  inline static constexpr auto RTTI = RTTI_BSScript__ErrorLogger;
16  inline static constexpr auto VTABLE = VTABLE_BSScript__ErrorLogger;
17 
18  enum class Severity
19  {
20  kInfo,
21  kWarning,
22  kError,
23  kFatal
24  };
25 
27  {
28  public:
29  // members
30  std::uint32_t fatalCount; // 0
31  std::uint32_t errorCount; // 4
32  std::uint32_t warningCount; // 8
33  };
34  static_assert(sizeof(PerThreadErrorCounts) == 0xC);
35 
36  virtual ~ErrorLogger(); // 00
37 
38  // add
39  virtual void PostErrorImpl(const char* a_message, Severity a_severity) = 0; // 01
40  virtual void ResetImpl(); // 02 - { return; }
41 
42  // members
45  };
46  static_assert(sizeof(ErrorLogger) == 0x98);
47  }
48 }
Definition: ErrorLogger.h:13
virtual void PostErrorImpl(const char *a_message, Severity a_severity)=0
Severity
Definition: ErrorLogger.h:19
virtual void ResetImpl()
static constexpr auto VTABLE
Definition: ErrorLogger.h:16
BSTHashMap< std::uint32_t, PerThreadErrorCounts > threadErrors
Definition: ErrorLogger.h:44
BSSpinLock threadErrorsLock
Definition: ErrorLogger.h:43
static constexpr auto RTTI
Definition: ErrorLogger.h:15
Definition: BSAtomic.h:92
Definition: BSTEvent.h:19
Definition: BSTHashMap.h:21
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSScript__ErrorLogger
Definition: Offsets_VTABLE.h:9445
constexpr REL::ID RTTI_BSScript__ErrorLogger(static_cast< std::uint64_t >(689021))
std::uint32_t warningCount
Definition: ErrorLogger.h:32
std::uint32_t errorCount
Definition: ErrorLogger.h:31
std::uint32_t fatalCount
Definition: ErrorLogger.h:30