Gaudi Framework, version v24r2
Home
Generated: Wed Dec 4 2013
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
GaudiAlg
GaudiAlg
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
6
#include "
GaudiKernel/Algorithm.h
"
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
209
StatusCode
execute
(
std::vector<Algorithm*>
* theAlgs,
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