#include #ifdef _WIN32 #include typedef sp::Win32EventQueue ImplType; #else #error "No MessageQueue implementation exists" #endif namespace sp { MessageQueue::MessageQueue() { m_impl = new ImplType(); } MessageQueue::~MessageQueue() { delete m_impl; } void MessageQueue::postEvent(SysEvent event) { m_queue.push_back(event); } bool MessageQueue::pollEvent(SysEvent& event) { // Process platform events first. if (m_impl->poll(event)) { return true; } if (!isEmpty()) { event = m_queue.front(); m_queue.pop_front(); return true; } return false; } bool MessageQueue::isEmpty() const { return m_queue.empty(); } } // namespace sp