Blamite Game Engine - Strings  00291.01.11.21.2204.blamite
A library containing general purpose utilities and classes for use in multiple projects.
logger.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 
7 
8 #ifdef STRINGS_EXPORTS
9 #define STRINGS_API __declspec(dllexport)
10 #else
11 #define STRINGS_API __declspec(dllimport)
12 #endif
13 
17 enum class BlamLogLevel
18 {
19  None,
20  Warning,
21  Error,
22  Severe,
23 
30  Input,
31 
37  AiError
38 };
39 
41 {
42 public:
44  std::string message = "";
45  std::string timestamp = "";
46 
47  std::string GetMessageLine();
48 };
49 
51 {
52 public:
53  virtual void LogMessageReceived(BlamBasicLogMessage message) {};
54 };
55 
57 {
58 private:
59  std::vector<BlamBasicLogMessage> history = std::vector<BlamBasicLogMessage>();
60  std::vector<BlamLogReceiver*> receivers = std::vector<BlamLogReceiver*>();
61 
62 public:
64 
65  void ClearHistory();
66 
67  std::vector<BlamBasicLogMessage> GetHistory();
68 
69  void LogEvent(BlamBasicLogMessage message);
70  void LogEvent(std::string message);
71  void LogEvent(std::string message, BlamLogLevel log_level);
72 
73  void AddReceiver(BlamLogReceiver* receiver);
74  void RemoveReceiver(BlamLogReceiver* receiver);
75 };
76 
78 {
79  STRINGS_API std::string GenerateLogLevelPrefix(BlamLogLevel log_level);
80 }
BlamLogReceiver
Definition: logger.h:50
BlamBasicLogMessage
Definition: logger.h:40
BlamStrings::Interface::Logger::GenerateLogLevelPrefix
STRINGS_API std::string GenerateLogLevelPrefix(BlamLogLevel log_level)
Definition: logger.cpp:3
BlamLogReceiver::LogMessageReceived
virtual void LogMessageReceived(BlamBasicLogMessage message)
Definition: logger.h:53
STRINGS_API
#define STRINGS_API
Definition: logger.h:11
BlamLogLevel::AiError
@ AiError
Placeholder for the future, indicates an error with AI.
BlamStringsInternal::Logger::API::AddReceiver
STRINGS_INTERNAL void AddReceiver(BlamLogReceiver *receiver)
Definition: logger.cpp:25
BlamStringsInternal::Logger::API::RemoveReceiver
STRINGS_INTERNAL void RemoveReceiver(BlamLogReceiver *receiver)
Definition: logger.cpp:30
BlamLogLevel::Error
@ Error
Indicates an error that could cause engine instability.
BlamLogLevel::None
@ None
Indicates no severity, and is displayed with no formatting.
BlamLogLevel::Input
@ Input
Indicates that the user has executed a command from console.
BlamLogLevel::Severe
@ Severe
Indicates a severe error that the engine cannot recover from.
BlamStrings::Interface::Logger
Definition: logger.h:77
BlamBasicLogger
Definition: logger.h:56
BlamLogLevel
BlamLogLevel
Enumerator to specify log event severity.
Definition: logger.h:17
BlamStringsInternal::Logger::LogEvent
STRINGS_INTERNAL void LogEvent(std::string message, BlamLogLevel log_level)
Definition: logger.cpp:20
BlamLogLevel::Warning
@ Warning
Indicates a warning message. Not something critical, but something that could cause unexpected behavi...
datetime.h