QSequence.hh
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _Q_SEQUENCE_H
00011 #define _Q_SEQUENCE_H
00012
00013
00014 #include <vector>
00015 #include <string>
00016 #include <ostream>
00017 #include <map>
00018
00019 #include "QGlobalDataManager.hh"
00020 #include "QCuore.hh"
00021 #include "QNamed.hh"
00022
00023 class QBaseModule;
00024 class QReader;
00025 class QModule;
00026 class QDriver;
00027 class QWriter;
00028 class MDefaults;
00029 class QError;
00030
00031 class QSequence : public QNamed {
00032 public:
00033
00034 QSequence(const std::string&);
00035
00036 virtual ~QSequence();
00037
00038 bool Run();
00039
00040 void Dump(std::ostream&);
00041
00042
00043 QGlobalDataManager& AuxData() {return fGlobalData;}
00044
00045
00046 void SetRunAgain(bool b) {fRunAgain = b;}
00047 bool GetRunAgain() {return fRunAgain;}
00048 unsigned int GetIteration() {return fIteration;}
00049 size_t GetNumber() {return fCounter;}
00050
00051 const QError& JumpToEvent(unsigned int event, QBaseModule* caller);
00052
00053 private:
00054 QReader *p_Reader;
00055 QWriter *p_Writer;
00056 MDefaults *p_Defaults;
00057 QDriver *p_Driver;
00058 std::vector< QBaseModule* > modules;
00059
00060
00061 QGlobalDataManager fGlobalData;
00062
00063
00064 unsigned int fIteration;
00065
00066
00067 bool fRunAgain;
00068
00069
00070 static size_t fCounter;
00071
00072
00073 friend class QModuleFactory;
00074 };
00075
00076 #endif