GaudiSequencer.h
Go to the documentation of this file.
1 // $Id: GaudiSequencer.h,v 1.5 2008/01/10 13:11:11 marcocle Exp $
2 #ifndef GAUDISEQUENCER_H
3 #define GAUDISEQUENCER_H 1
4 
5 // Include files
6 // from Gaudi
7 #include "GaudiAlg/GaudiAlgorithm.h"
8 
9 // Forward declarations
11 
28 public:
30  GaudiSequencer( const std::string& name, ISvcLocator* pSvcLocator );
31 
32  virtual ~GaudiSequencer( );
33 
34  virtual StatusCode initialize();
35  virtual StatusCode execute ();
36  virtual StatusCode finalize ();
37 
38  virtual StatusCode beginRun ();
39  virtual StatusCode endRun ();
40 
42  void membershipHandler( Property& theProp );
43 
44 protected:
45 
46  class AlgorithmEntry {
47  public:
49  AlgorithmEntry( Algorithm* alg ) {
50  m_algorithm = alg;
51  m_reverse = false;
52  m_timer = 0;
53  }
54 
55  virtual ~AlgorithmEntry( ) {};
56  void setReverse( bool flag ) { m_reverse = flag; }
57 
58  Algorithm* algorithm() const { return m_algorithm; }
59  bool reverse() const { return m_reverse; }
60  void setTimer( int nb ) { m_timer = nb; }
61  int timer() const { return m_timer; }
62  private:
63  Algorithm* m_algorithm;
64  bool m_reverse;
65  int m_timer;
66  };
67 
69  StatusCode decodeNames( );
70 
71 private:
72 
74  GaudiSequencer( const GaudiSequencer& a );
75 
78 
79  StringArrayProperty m_names;
80  std::vector<AlgorithmEntry> m_entries;
81  bool m_modeOR;
82  bool m_shortCircuit;
83  bool m_ignoreFilter;
86  bool m_isInitialized;
87  bool m_measureTime;
88  bool m_returnOK;
89  ISequencerTimerTool* m_timerTool;
90  int m_timer;
91 };
92 #endif // GAUDISEQUENCER_H
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:26
#define GAUDI_API
Definition: Kernel.h:108
Sequencer for executing several algorithms, stopping when one is faulty.
virtual StatusCode initialize()
standard initialization method
virtual StatusCode beginRun()
Algorithm begin run.
Definition: Algorithm.cpp:497
virtual StatusCode endRun()
Algorithm end run. This method is called at the end of the event loop.
Definition: Algorithm.cpp:573
virtual StatusCode finalize()
standard finalization method
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
The useful base class for data processing algorithms.
virtual StatusCode execute()
standard execution method
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:61
Property base class allowing Property* collections to be "homogeneous".
Definition: Property.h:43
Implements the time measurement inside a sequencer.
GaudiAlgorithm & operator=(const GaudiAlgorithm &)
no public assignment