|
Gaudi Framework, version v23r2 |
| Home | Generated: Thu Jun 28 2012 |
00001 // $Id: GaudiSequencer.h,v 1.5 2008/01/10 13:11:11 marcocle Exp $ 00002 #ifndef GAUDISEQUENCER_H 00003 #define GAUDISEQUENCER_H 1 00004 00005 // Include files 00006 // from Gaudi 00007 #include "GaudiAlg/GaudiAlgorithm.h" 00008 00009 // Forward declarations 00010 class ISequencerTimerTool; 00011 00027 class GAUDI_API GaudiSequencer: public GaudiAlgorithm { 00028 public: 00030 GaudiSequencer( const std::string& name, ISvcLocator* pSvcLocator ); 00031 00032 virtual ~GaudiSequencer( ); 00033 00034 virtual StatusCode initialize(); 00035 virtual StatusCode execute (); 00036 virtual StatusCode finalize (); 00037 00038 virtual StatusCode beginRun (); 00039 virtual StatusCode endRun (); 00040 00041 void resetExecuted(); 00042 00044 void membershipHandler( Property& theProp ); 00045 00046 protected: 00047 00048 class AlgorithmEntry { 00049 public: 00051 AlgorithmEntry( Algorithm* alg ) { 00052 m_algorithm = alg; 00053 m_reverse = false; 00054 m_timer = 0; 00055 } 00056 00057 virtual ~AlgorithmEntry( ) {}; 00058 void setReverse( bool flag ) { m_reverse = flag; } 00059 00060 Algorithm* algorithm() const { return m_algorithm; } 00061 bool reverse() const { return m_reverse; } 00062 void setTimer( int nb ) { m_timer = nb; } 00063 int timer() const { return m_timer; } 00064 private: 00065 Algorithm* m_algorithm; 00066 bool m_reverse; 00067 int m_timer; 00068 }; 00069 00071 StatusCode decodeNames( ); 00072 00073 private: 00074 00076 GaudiSequencer( const GaudiSequencer& a ); 00077 00079 GaudiSequencer& operator=( const GaudiSequencer& a ); 00080 00081 StringArrayProperty m_names; 00082 std::vector<AlgorithmEntry> m_entries; 00083 bool m_modeOR; 00084 bool m_shortCircuit; 00085 00086 00087 bool m_ignoreFilter; 00088 bool m_isInitialized; 00089 bool m_measureTime; 00090 bool m_returnOK; 00091 ISequencerTimerTool* m_timerTool; 00092 int m_timer; 00093 }; 00094 #endif // GAUDISEQUENCER_H