| Report problems to ATLAS LXR Team (with time and IP address indicated) |
|
[ source navigation ] [ diff markup ] [ identifier search ] [ general search ] |
||||
|
||||||
| Links to LXR source navigation pages for stable releases | [ 12.*.* ] [ 13.*.* ] [ 14.*.* ] [ 15.*.* ] | |||||
001 // $Id: GaudiSequencer.h,v 1.5 2008/01/10 13:11:11 marcocle Exp $ 002 #ifndef GAUDISEQUENCER_H 003 #define GAUDISEQUENCER_H 1 004 005 // Include files 006 // from Gaudi 007 #include "GaudiAlg/GaudiAlgorithm.h" 008 009 // Forward declarations 010 class ISequencerTimerTool; 011 012 /** @class GaudiSequencer GaudiSequencer.h 013 * Sequencer for executing several algorithms, stopping when one is faulty. 014 * 015 * @author Olivier Callot 016 * @date 2004-05-13 017 */ 018 class GaudiSequencer : public GaudiAlgorithm { 019 public: 020 /// Standard constructor 021 GaudiSequencer( const std::string& name, ISvcLocator* pSvcLocator ); 022 023 virtual ~GaudiSequencer( ); ///< Destructor 024 025 virtual StatusCode initialize(); ///< Algorithm initialization 026 virtual StatusCode execute (); ///< Algorithm execution 027 virtual StatusCode finalize (); ///< Algorithm finalization 028 029 virtual StatusCode beginRun (); ///< Algorithm beginRun 030 virtual StatusCode endRun (); ///< Algorithm endRun 031 032 void resetExecuted(); ///< Called before an event processing 033 034 /** for asynchronous changes in the list of algorithms */ 035 void membershipHandler( Property& theProp ); 036 037 protected: 038 039 class AlgorithmEntry { 040 public: 041 /// Standard constructor 042 AlgorithmEntry( Algorithm* alg ) { 043 m_algorithm = alg; 044 m_reverse = false; 045 m_timer = 0; 046 } 047 048 virtual ~AlgorithmEntry( ) {}; ///< Destructor 049 void setReverse( bool flag ) { m_reverse = flag; } 050 051 Algorithm* algorithm() const { return m_algorithm; } 052 bool reverse() const { return m_reverse; } 053 void setTimer( int nb ) { m_timer = nb; } 054 int timer() const { return m_timer; } 055 private: 056 Algorithm* m_algorithm; ///< Algorithm pointer 057 bool m_reverse; ///< Indicates that the flag has to be inverted 058 int m_timer; ///< Timer number fo rthis algorithm 059 }; 060 061 /** Decode a vector of string. */ 062 StatusCode decodeNames( ); 063 064 private: 065 066 /** Private copy, copy not allowed **/ 067 GaudiSequencer( const GaudiSequencer& a ); 068 069 /** Private assignment operator: This is not allowed **/ 070 GaudiSequencer& operator=( const GaudiSequencer& a ); 071 072 StringArrayProperty m_names; ///< Input string, list of algorithms 073 std::vector<AlgorithmEntry> m_entries; ///< List of algorithms to process. 074 bool m_modeOR; ///< Indicates that the OR is wanted instead of AND 075 bool m_shortCircuit; ///< Indicates whether to stop processing as soon as possible, 076 /// or to always execute _all_ subalgorithms 077 bool m_ignoreFilter; ///< True if one continues always. 078 bool m_isInitialized; ///< Indicate that we are ready 079 bool m_measureTime; ///< Flag to measure time 080 bool m_returnOK; ///< Forces the sequencer to return a good status 081 ISequencerTimerTool* m_timerTool; ///< Pointer to the timer tool 082 int m_timer; ///< Timer number for the sequencer 083 }; 084 #endif // GAUDISEQUENCER_H 085
| [ source navigation ] | [ diff markup ] | [ identifier search ] | [ general search ] |
| Due to the LXR bug, the updates fail sometimes to remove references to deleted files. The Saturday's full rebuilds fix these problems | |
| This page was automatically generated by the LXR engine. |
|