Gaudi Framework, version v21r9

Home   Generated: 3 May 2010

StateMachine.cpp

Go to the documentation of this file.
00001 #include "GaudiKernel/StateMachine.h"
00002 
00003 namespace Gaudi { namespace StateMachine {
00008 State ChangeState(const Transition transition, const State state) {
00009   switch (transition) {
00010   case CONFIGURE:
00011     if ( OFFLINE == state ) {
00012       return CONFIGURED;
00013     }
00014     break;
00015   case INITIALIZE:
00016     if ( CONFIGURED == state ) {
00017       return INITIALIZED;
00018     }
00019     break;
00020   case START:
00021     if ( INITIALIZED == state ) {
00022       return RUNNING;
00023     }
00024     break;
00025   case STOP:
00026     if ( RUNNING == state ) {
00027       return INITIALIZED;
00028     }
00029     break;
00030   case FINALIZE:
00031     if ( INITIALIZED == state ) {
00032       return CONFIGURED;
00033     }
00034     break;
00035   case TERMINATE:
00036     if ( CONFIGURED == state ) {
00037       return OFFLINE;
00038     }
00039     break;
00040   }
00041   std::stringstream msg;
00042   msg << "Invalid transition '" << transition << "' from state '" << state << "'";
00043   throw GaudiException(msg.str(), "Gaudi::StateMachine::ChangeState",
00044       StatusCode(StatusCode::FAILURE,true));
00045   return OFFLINE; // never reached, but maked the compiler happy
00046 }
00047 
00048 } } // namespace Gaudi::StateMachine

Generated at Mon May 3 12:14:35 2010 for Gaudi Framework, version v21r9 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004