wangzhengquan
2020-07-07 379f42982b8c57ee6511cb8e498019f454323977
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// queue.h -- interface for a queue
#ifndef SAbstractQueue_H_
#define SAbstractQueue_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