LkEngine 0.1.2
 
Loading...
Searching...
No Matches
CrashHandler.h
1/******************************************************************
2 * CrashHandler
3 *
4 *******************************************************************/
5#pragma once
6
8
9namespace LkEngine {
10
11 class LCrashHandler;
12 class LApplication;
13
20 {
21 public:
22 virtual ~ICrashHandler() = default;
23
24 protected:
25 virtual std::string GenerateApplicationCrashDump() = 0;
26 virtual void LogCrashInformation(std::string_view CrashInformation) = 0;
27 virtual std::string CaptureBackTraceOnStack() = 0;
28
29 friend class LCrashHandler;
30 };
31
36 {
37 public:
38 static void AttachInstance(LApplication* ApplicationRef);
39
40 private:
41 static void SignalHandler(const int Signal);
42
43 private:
45 inline static std::unique_ptr<ICrashHandler> CrashHandler = nullptr;
46
47 inline static bool bIsShuttingDown = false;
48 };
49
50}
Core header.
Definition CrashHandler.h:20
Definition Application.h:77
Definition CrashHandler.h:36
Definition Asset.h:11