Gaudi Framework, version v24r2

Home   Generated: Wed Dec 4 2013
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Sequencer.h
Go to the documentation of this file.
1 // $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiAlg/GaudiAlg/Sequencer.h,v 1.4 2008/06/02 14:22:04 marcocle Exp $
2 #ifndef ALGORITHM_SEQUENCER_H
3 #define ALGORITHM_SEQUENCER_H
4 
5 // Include files
7 #include "GaudiKernel/Property.h"
8 
9 class MsgStream;
10 
24 class GAUDI_API Sequencer: public Algorithm {
25  public:
26 
30  Sequencer( const std::string& name, // The path object's name
31  ISvcLocator* svcloc // A pointer to a service location service
32  );
33 
37  virtual ~Sequencer( );
38 
39  /*****************************
40  ** Public Function Members **
41  *****************************/
42 
49  virtual StatusCode initialize( );
50 
54  virtual StatusCode reinitialize( );
55 
59  virtual StatusCode start( );
60 
65  virtual StatusCode execute( );
66 
70  virtual StatusCode stop( );
71 
75  virtual StatusCode finalize( );
76 
80  virtual StatusCode beginRun( );
81 
85  virtual StatusCode endRun( );
86 
90  void resetExecuted( );
91 
95  virtual bool branchFilterPassed( ) const;
96 
100  virtual StatusCode setBranchFilterPassed( bool state );
101 
105  virtual bool isStopOverride( ) const;
106 
110  StatusCode append( Algorithm* pAlgorithm );
111 
115  StatusCode appendToBranch( Algorithm* pAlgorithm );
116 
126  StatusCode createAndAppend(
127  const std::string& type, // The concrete algorithm class of the algorithm
128  const std::string& name, // The name to be given to the algorithm
129  Algorithm*& pAlgorithm // Set to point to the newly created algorithm object
130  );
131 
141  StatusCode createAndAppendToBranch(
142  const std::string& type, // The concrete algorithm class of the algorithm
143  const std::string& name, // The name to be given to the algorithm
144  Algorithm*& pAlgorithm // Set to point to the newly created algorithm object
145  );
146 
150  StatusCode remove( Algorithm* pAlgorithm );
151  StatusCode remove( const std::string& name );
152  StatusCode removeFromBranch( Algorithm* pAlgorithm );
153  StatusCode removeFromBranch( const std::string& name );
154 
161  std::vector<Algorithm*>* branchAlgorithms( ) const;
162 
164  StatusCode decodeMemberNames( );
165 
167  void membershipHandler( Property& theProp );
168 
170  StatusCode decodeBranchMemberNames( );
171 
173  void branchMembershipHandler( Property& theProp );
174 
175 protected:
176 
180  StatusCode append( Algorithm* pAlgorithm,
181  std::vector<Algorithm*>* theAlgs );
182 
192  StatusCode createAndAppend(
193  const std::string& type, // The concrete algorithm class of the algorithm
194  const std::string& name, // The name to be given to the algorithm
195  Algorithm*& pAlgorithm, // Set to point to the newly created algorithm object
196  std::vector<Algorithm*>* theAlgs
197  );
198 
202  StatusCode decodeNames( StringArrayProperty& theNames,
203  std::vector<Algorithm*>* theAlgs,
204  std::vector<bool>& theLogic );
205 
210  std::vector<bool>& theLogic,
211  Algorithm*& lastAlgorithm, unsigned int first = 0 );
212 
216  StatusCode executeMember( Algorithm* theAlgorithm );
217 
222  StatusCode remove( const std::string& algname, std::vector<Algorithm*>* theAlgs );
223 
224 private:
225 
226  /******************************
227  ** Private Function Members **
228  ******************************/
229 
233  Sequencer( const Sequencer& a );
234 
238  Sequencer& operator=( const Sequencer& rhs );
239 
240  /**************************
241  ** Private Data Members **
242  **************************/
243 
244  StringArrayProperty m_names; // Member names
245  std::vector<bool> m_isInverted; // Member logic inverted list
246  StringArrayProperty m_branchNames; // Branch Member names
247  std::vector<Algorithm*>* m_branchAlgs; // Branch algorithms
248  std::vector<bool> m_isBranchInverted; // Branch Member logic inverted list
249  BooleanProperty m_stopOverride; // Stop on filter failure Override flag
250  bool m_branchFilterPassed; // Branch filter passed flag
251 };
252 
253 #endif //ALGORITHM_SEQUENCER_H
254 

Generated at Wed Dec 4 2013 14:33:07 for Gaudi Framework, version v24r2 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004