Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _NC_CIRCULAR_QUEUE_H_
00027 #define _NC_CIRCULAR_QUEUE_H_
00028
00029 #include <deque>
00030 #include <iostream>
00031 #include <orbsvcs/CosNotificationC.h>
00032
00033 namespace nc{
00039 class CircularQueue{
00040 private:
00041 std::deque<CosNotification::StructuredEvent> queue;
00042 unsigned int length;
00043 unsigned int max_size;
00044
00045 public:
00052 CircularQueue(unsigned int size = 100);
00053
00057 ~CircularQueue();
00058
00068 void push(CosNotification::StructuredEvent e);
00069
00073 void clear();
00074
00079 void pop();
00080
00087 CosNotification::StructuredEvent *front();
00088
00089 bool setMaxSize(unsigned int size);
00090 unsigned int getMaxSize() const;
00091 unsigned int size() { return queue.size(); }
00092 };
00093
00094 class EventDroppedException: std::exception
00095 {
00096 };
00097 }
00098
00099 #endif