| # Gaudi Framework, version v23r1 |

Home |  | Generated: Wed Feb 29 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