| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# 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