diff --git a/include/siadrive_api/eventsystem.h b/include/siadrive_api/eventsystem.h index eb28dd0..fb5f9f9 100644 --- a/include/siadrive_api/eventsystem.h +++ b/include/siadrive_api/eventsystem.h @@ -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 Clone() const = 0; }; diff --git a/include/siadrive_api/loggingconsumer.h b/include/siadrive_api/loggingconsumer.h index 6c52dd2..84525fa 100644 --- a/include/siadrive_api/loggingconsumer.h +++ b/include/siadrive_api/loggingconsumer.h @@ -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); }; diff --git a/src/siadrive/main.cpp b/src/siadrive/main.cpp index c824b6a..5d3f8d9 100644 --- a/src/siadrive/main.cpp +++ b/src/siadrive/main.cpp @@ -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(); diff --git a/src/siadrive_api/loggingconsumer.cpp b/src/siadrive_api/loggingconsumer.cpp index fc39b9d..8e3fc51 100644 --- a/src/siadrive_api/loggingconsumer.cpp +++ b/src/siadrive_api/loggingconsumer.cpp @@ -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); }); }