#pragma once #include "drape_frontend/message.hpp" #include "drape/pointers.hpp" #include "base/condition.hpp" #include "std/list.hpp" namespace df { class MessageQueue { public: ~MessageQueue(); /// if queue is empty than return NULL dp::TransferPointer PopMessage(unsigned maxTimeWait); void PushMessage(dp::TransferPointer message); void CancelWait(); void ClearQuery(); private: void WaitMessage(unsigned maxTimeWait); private: threads::Condition m_condition; list > m_messages; }; } // namespace df