00001 #ifndef _ots_RunControlStateMachine_h_
00002 #define _ots_RunControlStateMachine_h_
00003
00004 #include "otsdaq-core/FiniteStateMachine/FiniteStateMachine.h"
00005 #include "otsdaq-core/ProgressBar/ProgressBar.h"
00006
00007 #include "toolbox/lang/Class.h"
00008 #include <string>
00009
00010
00011 namespace ots
00012 {
00013
00014
00015
00016 class RunControlStateMachine : public virtual toolbox::lang::Class
00017 {
00018
00019 public:
00020
00021 RunControlStateMachine(std::string name="Undefined Name");
00022 virtual ~RunControlStateMachine(void);
00023
00024 void reset(void);
00025 void setStateMachineName(std::string name){stateMachineName_ = name;}
00026
00027
00028
00029 virtual void stateInitial (toolbox::fsm::FiniteStateMachine& fsm) {;}
00030
00031
00032
00033
00034
00035
00036 virtual void statePaused (toolbox::fsm::FiniteStateMachine& fsm) {;}
00037
00038
00039
00040
00041
00042
00043 virtual void stateRunning (toolbox::fsm::FiniteStateMachine& fsm) {;}
00044
00045
00046
00047
00048
00049 virtual void stateHalted (toolbox::fsm::FiniteStateMachine& fsm) {;}
00050
00051
00052 virtual void stateShutdown (toolbox::fsm::FiniteStateMachine& fsm) {;}
00053
00054
00055
00056
00057
00058
00059 virtual void stateConfigured (toolbox::fsm::FiniteStateMachine& fsm) {;}
00060
00061 virtual void inError (toolbox::fsm::FiniteStateMachine& fsm) {;}
00062
00063 virtual void transitionConfiguring (toolbox::Event::Reference e) {;}
00064 virtual void transitionHalting (toolbox::Event::Reference e) {;}
00065 virtual void transitionShuttingDown(toolbox::Event::Reference e) {;}
00066 virtual void transitionStartingUp (toolbox::Event::Reference e) {;}
00067 virtual void transitionInitializing(toolbox::Event::Reference e) {;}
00068 virtual void transitionPausing (toolbox::Event::Reference e) {;}
00069 virtual void transitionResuming (toolbox::Event::Reference e) {;}
00070 virtual void transitionStarting (toolbox::Event::Reference e) {;}
00071 virtual void transitionStopping (toolbox::Event::Reference e) {;}
00072 virtual void enteringError (toolbox::Event::Reference e) {;}
00073
00074
00075 xoap::MessageReference runControlMessageHandler(xoap::MessageReference message) ;
00076
00077 static const std::string FAILED_STATE_NAME;
00078
00079 protected:
00080 FiniteStateMachine theStateMachine_;
00081 ProgressBar theProgressBar_;
00082 std::string stateMachineName_;
00083
00084 };
00085
00086 }
00087
00088 #endif
00089