Gaudi Framework, version v25r2
Home
Generated: Wed Jun 4 2014
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
.cern.ch
sw
Gaudi
releases
GAUDI
GAUDI_v25r2
GaudiKernel
GaudiKernel
StateMachine.h
Go to the documentation of this file.
1
#ifndef GAUDIKERNEL_STATEMACHINE_H_
2
#define GAUDIKERNEL_STATEMACHINE_H_
3
4
#include "
GaudiKernel/GaudiException.h
"
5
6
namespace
Gaudi
{
7
namespace
StateMachine {
12
enum
State
{
13
OFFLINE
,
14
CONFIGURED
,
15
INITIALIZED
,
16
RUNNING
//,
17
//FINALIZED = CONFIGURED
18
};
19
23
enum
Transition
{
24
CONFIGURE
,
// OFFLINE -> CONFIGURED
25
INITIALIZE
,
// CONFIGURED -> INITIALIZED
26
START
,
// INITIALIZED -> RUNNING
27
STOP
,
// RUNNING -> INITIALIZED
28
FINALIZE
,
// INITIALIZED -> CONFIGURED
29
TERMINATE
// CONFIGURED -> OFFLINE
30
};
31
36
State
GAUDI_API
ChangeState
(
const
Transition
transition,
const
State
state
);
37
39
inline
std::ostream &
operator <<
(std::ostream &
s
,
const
Gaudi::StateMachine::State
&st) {
40
switch
(st) {
41
case
Gaudi::StateMachine::OFFLINE
:
return
s <<
"OFFLINE"
;
42
case
Gaudi::StateMachine::CONFIGURED
:
return
s <<
"CONFIGURED"
;
43
case
Gaudi::StateMachine::INITIALIZED
:
return
s <<
"INITIALIZED"
;
44
case
Gaudi::StateMachine::RUNNING
:
return
s <<
"RUNNING"
;
45
}
46
return
s
;
// cannot be reached, but make the compiler happy
47
}
48
50
inline
std::ostream &
operator <<
(std::ostream &
s
,
const
Gaudi::StateMachine::Transition
&t) {
51
switch
(t) {
52
case
Gaudi::StateMachine::CONFIGURE
:
return
s <<
"CONFIGURE"
;
53
case
Gaudi::StateMachine::INITIALIZE
:
return
s <<
"INITIALIZE"
;
54
case
Gaudi::StateMachine::START
:
return
s <<
"START"
;
55
case
Gaudi::StateMachine::STOP
:
return
s <<
"STOP"
;
56
case
Gaudi::StateMachine::FINALIZE
:
return
s <<
"FINALIZE"
;
57
case
Gaudi::StateMachine::TERMINATE
:
return
s <<
"TERMINATE"
;
58
}
59
return
s
;
// cannot be reached, but make the compiler happy
60
}
61
62
}
// namespace StateMachine
63
}
// namespace Gaudi
64
65
#endif
/*GAUDIKERNEL_STATEMACHINE_H_*/
Generated at Wed Jun 4 2014 14:48:57 for Gaudi Framework, version v25r2 by
Doxygen
version 1.8.2 written by
Dimitri van Heesch
, © 1997-2004