wangzhengquan
2020-07-06 302ae4427b04a25e4f1ee8acadbb05bf902f47f7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 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