File was renamed from squeue/include/shm_queue.h |
| | |
| | | // default Queue size |
| | | // #define LOCK_FREE_Q_DEFAULT_SIZE 16 |
| | | |
| | | // |
| | | |
| | | |
| | | template < typename ELEM_T> |
| | | class SHMQueue |
| | | { |
| | |
| | | /// @brief constructor of the class |
| | | SHMQueue(int key=0, size_t qsize = LOCK_FREE_Q_DEFAULT_SIZE); |
| | | |
| | | /// @brief destructor of the class. |
| | | /// Note it is not virtual since it is not expected to inherit from this |
| | | /// template |
| | | |
| | | ~SHMQueue(); |
| | | |
| | | /// @brief returns the current number of items in the queue |
| | | /// It tries to take a snapshot of the size of the queue, but in busy environments |
| | | /// this function might return bogus values. |
| | | /// |
| | | /// If a reliable queue size must be kept you might want to have a look at |
| | | /// the preprocessor variable in this header file called '_WITH_LOCK_FREE_Q_KEEP_REAL_SIZE' |
| | | /// it enables a reliable size though it hits overall performance of the queue |
| | | /// (when the reliable size variable is on it's got an impact of about 20% in time) |
| | | |
| | | inline uint32_t size(); |
| | | |
| | | /// @brief return true if the queue is full. False otherwise |
| | | /// It tries to take a snapshot of the size of the queue, but in busy |
| | | /// environments this function might return bogus values. See help in method |
| | | /// SHMQueue::size |
| | | inline bool full(); |
| | | |
| | | inline bool empty(); |
| | | |
| | | |
| | | inline bool push(const ELEM_T &a_data); |
| | | inline bool push_nowait(const ELEM_T &a_data); |
| | | inline bool push_timeout(const ELEM_T &a_data, struct timespec * timeout); |
| | | |
| | | |
| | | inline bool pop(ELEM_T &a_data); |
| | | inline bool pop_nowait(ELEM_T &a_data); |
| | | inline bool pop_timeout(ELEM_T &a_data, struct timespec * timeout); |