// queue.h -- interface for a queue
|
#ifndef SAbstractQueue_H_
|
#define SAbstractQueue_H_
|
#include "mm.h"
|
#include "pcsem.h"
|
|
template <typename T>
|
class SAbstractQueue
|
{
|
public:
|
SAbstractQueue() {}
|
virtual unsigned int size() const = 0;
|
virtual bool add(const T &item) = 0;// add item to end
|
virtual bool add_nowait(const T &item) = 0;
|
virtual bool add_timeout(const T &item, struct timespec *timeout) = 0;
|
virtual bool remove(T &item) = 0;
|
virtual bool remove_nowait(T &item) = 0;
|
virtual bool remove_timeout(T &item, struct timespec * timeout) = 0;
|
|
|
virtual T& operator[](unsigned i) = 0;
|
virtual ~SAbstractQueue() {}
|
};
|
#endif
|