00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef OMNIEVENTS__EVENTQUEUE_H
00025 #define OMNIEVENTS__EVENTQUEUE_H
00026
00027 #include <list>
00028
00029 using namespace std;
00030
00031 namespace CORBA {
00032 class Any;
00033 };
00034
00035 namespace OmniEvents {
00036
00037
00050 class EventQueue
00051 {
00052 private:
00053 struct Queued;
00054
00055 public:
00056 class Reader
00057 {
00058 public:
00059 Reader(EventQueue& eventQueue);
00060 bool moreEvents() const;
00061 CORBA::Any* nextEvent();
00062 private:
00063 EventQueue& _eventQueue;
00064 int _next;
00065 };
00066
00067 EventQueue(long size=1023);
00068 virtual ~EventQueue();
00069 void append(list<CORBA::Any*>& events);
00070
00071 private:
00073 long _next;
00074 long _size;
00075 CORBA::Any** _queue;
00076
00077 friend class Reader;
00078 };
00079
00080 };
00081
00082 #endif // OMNIEVENTS__EVENTQUEUE_H