#ifndef EVENT_EVT_CONTEXT_HPP #define EVENT_EVT_CONTEXT_HPP #include "event/EvtHandler.hpp" #include "event/EvtKeyDown.hpp" #include "event/EvtMessage.hpp" #include "event/EvtTimer.hpp" #include "event/Types.hpp" #include #include #include #include #include class EvtContext : public TSingletonInstanceId, m_id)> { public: // Types enum SCHEDSTATE { SCHEDSTATE_ACTIVE = 0x0, SCHEDSTATE_CLOSED = 0x1, SCHEDSTATE_DESTROYED = 0x2, _UNIQUE_SYMBOL_SCHEDSTATE_96 = 0xFFFFFFFF, }; // Member variables SCritSect m_critsect; uint32_t m_currTime; SCHEDSTATE m_schedState; TSTimerPriority m_schedNextWakeTime; uint32_t m_schedLastIdle; uint32_t m_schedFlags; uint32_t m_schedIdleTime; uint32_t m_schedInitialIdleTime; uint32_t m_schedWeight; uint32_t m_schedSmoothWeight; int32_t m_schedRebalance; TSExplicitList m_queueHandlerList[EVENTIDS]; TSExplicitList m_queueMessageList; uint32_t m_queueSyncButtonState; TSExplicitList m_queueSyncKeyDownList; // TODO // EvtIdTable m_timerIdTable; EvtTimerQueue m_timerQueue; HPROPCONTEXT m_propContext; void* m_callContext; uint32_t m_startWatchdog; // Member functions EvtContext(uint32_t, uint32_t, uint32_t, void*, int32_t); }; class EvtContextQueue : public TSPriorityQueue { public: EvtContextQueue(); }; #endif