00001
00002
00003 #ifndef __IGSLISTENER__event_recorder_h__
00004 #define __IGSLISTENER__event_recorder_h__
00005
00006 #include "common.h"
00007 #include "event.h"
00008 #include <list>
00009
00018 #define igs_record(E) record(new E)
00019
00020 namespace listener {
00021
00022 class Publisher ;
00023
00054
00055
00056 class IGSLISTENER EventRecorder {
00057 public:
00058 EventRecorder() ;
00059 ~EventRecorder() ;
00060
00064 void record(Event*) ;
00065
00069 void clear() ;
00070
00075 void play(Publisher*) ;
00076
00077 private:
00078 typedef std::list<Event_var> Events ;
00079 Events events_ ;
00080
00081 } ;
00082
00083 }
00084
00085
00086 #endif