1
0

Basic EventLevel support

This commit is contained in:
Scott E. Graves
2017-04-03 19:48:53 -05:00
parent f33807cc70
commit aabd34b74a
4 changed files with 24 additions and 4 deletions

View File

@@ -5,12 +5,27 @@
NS_BEGIN(Sia)
NS_BEGIN(Api)
enum class EventLevel
{
Error,
Normal,
Debug
};
class SIADRIVE_EXPORTABLE CEvent
{
public:
CEvent(const EventLevel& eventLevel = EventLevel::Normal) :
_eventLevel(eventLevel)
{}
virtual ~CEvent() {}
private:
const EventLevel _eventLevel;
public:
const EventLevel& GetEventLevel() const { return _eventLevel; }
virtual SString GetSingleLineMessage() const = 0;
virtual std::shared_ptr<CEvent> Clone() const = 0;
};

View File

@@ -7,14 +7,17 @@ NS_BEGIN(Sia)
NS_BEGIN(Api)
class CEvent;
enum class EventLevel;
class SIADRIVE_EXPORTABLE CLoggingConsumer
{
public:
CLoggingConsumer();
CLoggingConsumer(const EventLevel& eventLevel);
public:
~CLoggingConsumer();
Property(EventLevel, EventLevel, public, public)
private:
void ProcessEvent(const CEvent& eventData);
};

View File

@@ -21,9 +21,10 @@ int APIENTRY wWinMain(HINSTANCE hInstance,
UNREFERENCED_PARAMETER(lpCmdLine);
#ifdef _DEBUG
CDebugConsumer debugConsumer;
CLoggingConsumer loggingConsumer(EventLevel::Debug);
#else
CLoggingConsumer loggingConsumer(EventLevel::Release);
#endif
CLoggingConsumer loggingConsumer;
CEventSystem::EventSystem.Start();
CefEnableHighDPISupport();

View File

@@ -4,7 +4,8 @@
using namespace Sia::Api;
CLoggingConsumer::CLoggingConsumer()
CLoggingConsumer::CLoggingConsumer(const EventLevel& eventLevel) :
_EventLevel(eventLevel)
{
CEventSystem::EventSystem.AddEventConsumer([=](const CEvent& event) {this->ProcessEvent(event); });
}