All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
StateMachine.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_STATEMACHINE_H_
2 #define GAUDIKERNEL_STATEMACHINE_H_
3 
5 
6 namespace Gaudi {
7 namespace StateMachine {
12 enum State {
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 
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 
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_*/
std::ostream & operator<<(std::ostream &s, const Gaudi::StateMachine::State &st)
Pretty print of states.
Definition: StateMachine.h:39
State
Allowed states for classes implementing the state machine (ApplicationMgr, Algorithm, Service, AlgTool).
Definition: StateMachine.h:12
State GAUDI_API ChangeState(const Transition transition, const State state)
Function to get the new state according to the required transition, checking if the transition is all...
Definition: StateMachine.cpp:8
Transition
Allowed transitions between states.
Definition: StateMachine.h:23
string s
Definition: gaudirun.py:245
#define GAUDI_API
Definition: Kernel.h:107
STL class.
Helper functions to set/get the application return code.
Definition: __init__.py:1