13#ifndef ML_BACKGROUND_TASK_MESSAGE_QUEUE_H
14#define ML_BACKGROUND_TASK_MESSAGE_QUEUE_H
19#include <ThirdPartyWarningsDisable.h>
21#include <boost/thread/mutex.hpp>
22#include <boost/thread/condition.hpp>
23#include <ThirdPartyWarningsRestore.h>
29class BackgroundTaskMessage;
30class BackgroundTaskMessageReceiver;
83 std::deque<BackgroundTaskMessage*> _queue;
87 boost::condition _messageAvailable;
#define MLBACKGROUNDTASKS_EXPORT
void removeMessagesForReceiver(BackgroundTaskMessageReceiver *receiver)
BackgroundTaskMessage * waitForMessage()
BackgroundTaskMessage * nextMessage()
BackgroundTaskMessageQueue()
void cancelAndNotify()
Sets that the queue is canceled and notifies it if it is waiting for new messages.
BackgroundTaskMessage * nextMessage(int &availableMessages)
~BackgroundTaskMessageQueue()
bool isCanceled() const
Returns whether the queue has been canceled.
void addMessage(BackgroundTaskMessage *message)
BackgroundTaskMessage * nextMessageNoLock()
void cancel()
Sets that the queue is canceled.
The base class of all background messages.
#define ML_DISALLOW_COPY_AND_ASSIGN(className)
Defines basic macros.