OpenDaVINCI  4.16.0
LIFOQueue.h
Go to the documentation of this file.
1 
20 #ifndef OPENDAVINCI_CORE_BASE_LIFOQUEUE_H_
21 #define OPENDAVINCI_CORE_BASE_LIFOQUEUE_H_
22 
23 #include <deque>
24 
29 
30 namespace odcore {
31  namespace base {
32 
33  using namespace std;
34 
39  private:
45  LIFOQueue(const LIFOQueue &);
46 
52  LIFOQueue& operator=(const LIFOQueue &);
53 
54  public:
55  LIFOQueue();
56 
57  virtual ~LIFOQueue();
58 
59  virtual void clear();
60 
61  virtual void push(const data::Container &container);
62 
63  const data::Container pop();
64 
65  virtual void add(odcore::data::Container &container);
66 
67  virtual uint32_t getSize() const;
68 
69  virtual bool isEmpty() const;
70 
71  protected:
79  const data::Container get(const uint32_t &index) const;
80 
81  private:
82  mutable Mutex m_mutexQueue;
83  deque<data::Container> m_queue;
84  };
85 
86  }
87 } // odcore::base
88 
89 #endif /*OPENDAVINCI_CORE_BASE_LIFOQUEUE_H_*/
Definition: base/Mutex.h:49
Definition: Container.h:40
#define OPENDAVINCI_API
Definition: opendavinci.h:67
Definition: AbstractDataStore.h:34
Definition: LIFOQueue.h:38