Gaudi Framework, version v23r2

Home   Generated: Thu Jun 28 2012

GaudiSequencer.h

Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Thu Jun 28 2012 23:27:14 for Gaudi Framework, version v23r2 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004