20 #ifndef CO_COMMANDQUEUE_H 21 #define CO_COMMANDQUEUE_H 25 #include <lunchbox/thread.h> 30 namespace detail {
class CommandQueue; }
42 CO_API
explicit CommandQueue(
const size_t maxSize = ULONG_MAX );
45 CO_API
virtual ~CommandQueue();
53 CO_API
virtual void push(
const ICommand& command );
56 CO_API
virtual void pushFront(
const ICommand& command );
65 CO_API
virtual ICommand pop(
const uint32_t timeout =
66 LB_TIMEOUT_INDEFINITE );
75 CO_API
virtual ICommands popAll(
const uint32_t timeout =
76 LB_TIMEOUT_INDEFINITE );
91 CO_API
bool isEmpty()
const;
97 CO_API
size_t getSize()
const;
100 virtual void pump() {};
102 LB_TS_VAR( _thread );
105 detail::CommandQueue*
const _impl;
109 #endif //CO_COMMANDQUEUE_H Defines export visibility macros for library Collage.
std::vector< ICommand > ICommands
A vector of input commands.
A thread-safe, blocking queue for ICommand buffers.
Object-oriented network library.
A class managing received commands.