00001 #ifndef SIGEL_SIMULATION_SIG_RECORDER_H 00002 #define SIGEL_SIMULATION_SIG_RECORDER_H 00003 00004 #include "SIGEL_Simulation/SIG_SimulationQueries.h" 00005 00006 #include "SIGEL_Simulation/SIG_RecorderNoQueriesSetException.h" 00007 #include "SIGEL_Simulation/SIG_RecorderBadRecordingOrderException.h" 00008 00009 namespace SIGEL_Simulation 00010 { 00011 00027 class SIG_Recorder { 00028 public: 00029 00034 SIG_Recorder(); 00035 00055 virtual void init() 00056 throw(SIG_RecorderNoQueriesSetException, 00057 SIG_RecorderBadRecordingOrderException); 00058 00082 virtual void record() 00083 throw(SIG_RecorderNoQueriesSetException, 00084 SIG_RecorderBadRecordingOrderException); 00085 00106 virtual void finish() 00107 throw(SIG_RecorderNoQueriesSetException, 00108 SIG_RecorderBadRecordingOrderException); 00109 00119 void setSimulationQueries(SIG_SimulationQueries const &newSimulationQueries); 00120 00121 protected: 00122 00129 SIG_SimulationQueries const* simulationQueries; 00130 00131 private: 00135 bool initialized; 00136 00140 bool finished; 00141 }; 00142 00143 } 00144 00145 #endif // SIGEL_SIMULATION_SIG_RECORDER_H 00146