| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

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 
00018 class GaudiSequencer : public GaudiAlgorithm {
00019 public:
00021   GaudiSequencer( const std::string& name, ISvcLocator* pSvcLocator );
00022 
00023   virtual ~GaudiSequencer( ); 
00024 
00025   virtual StatusCode initialize();    
00026   virtual StatusCode execute   ();    
00027   virtual StatusCode finalize  ();    
00028 
00029   virtual StatusCode beginRun  ();    
00030   virtual StatusCode endRun    ();    
00031 
00032   void resetExecuted();         
00033 
00035   void membershipHandler( Property& theProp );
00036 
00037 protected:
00038 
00039   class AlgorithmEntry {
00040   public:
00042     AlgorithmEntry( Algorithm* alg ) {
00043       m_algorithm = alg;
00044       m_reverse = false;
00045       m_timer = 0;
00046     }
00047 
00048     virtual ~AlgorithmEntry( ) {}; 
00049     void setReverse( bool flag )            { m_reverse   = flag; }
00050 
00051     Algorithm* algorithm()        const  { return m_algorithm; }
00052     bool       reverse()          const  { return m_reverse;   }
00053     void       setTimer( int nb )        { m_timer = nb;       }
00054     int        timer()            const  { return m_timer;     }
00055   private:
00056     Algorithm*  m_algorithm;   
00057     bool        m_reverse;     
00058     int         m_timer;       
00059   };
00060 
00062   StatusCode decodeNames(  );
00063 
00064 private:
00065 
00067   GaudiSequencer( const GaudiSequencer& a );
00068 
00070   GaudiSequencer& operator=( const GaudiSequencer& a );
00071 
00072   StringArrayProperty   m_names;         
00073   std::vector<AlgorithmEntry> m_entries; 
00074   bool m_modeOR;                         
00075   bool m_shortCircuit;                   
00076 
00077   bool m_ignoreFilter;                   
00078   bool m_isInitialized;                  
00079   bool m_measureTime;                    
00080   bool m_returnOK;                       
00081   ISequencerTimerTool* m_timerTool;      
00082   int  m_timer;                          
00083 };
00084 #endif // GAUDISEQUENCER_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 19:58:14 2011 for GaudiAlg by doxygen 1.4.7