1 #ifndef _ots_FiniteStateMachine_h
2 #define _ots_FiniteStateMachine_h
4 #include <toolbox/fsm/FiniteStateMachine.h>
5 #include <xoap/MessageReference.h>
17 using toolbox::fsm::FiniteStateMachine::addStateTransition;
18 template <
class OBJECT>
19 void addStateTransition(
20 toolbox::fsm::State from,
21 toolbox::fsm::State to,
22 const std::string& input,
23 const std::string& transitionName,
25 void (OBJECT::*func)(toolbox::Event::Reference) )
28 stateTransitionNameTable_[from][input] = transitionName;
29 toolbox::fsm::FiniteStateMachine::addStateTransition(from, to, input, obj, func);
32 template <
class OBJECT>
33 void addStateTransition(
34 toolbox::fsm::State from,
35 toolbox::fsm::State to,
36 const std::string &input,
37 const std::string &transitionName,
38 const std::string &transitionParameter,
40 void (OBJECT::*func)(toolbox::Event::Reference) )
43 stateTransitionParameterTable_[from][input] = transitionParameter;
44 addStateTransition(from, to, input, transitionName, obj, func);
47 toolbox::fsm::State getProvenanceState (
void);
48 toolbox::fsm::State getTransitionFinalState(
const std::string &transition) ;
50 std::string getProvenanceStateName (
void);
51 std::string getCurrentStateName (
void);
52 time_t getTimeInState (
void);
53 std::string getCurrentTransitionName (
const std::string &transition) ;
54 std::string getTransitionName (
const toolbox::fsm::State from,
const std::string &transition) ;
55 std::string getTransitionParameter (
const toolbox::fsm::State from,
const std::string &transition) ;
56 std::string getTransitionFinalStateName(
const std::string &transition) ;
57 const std::string &getErrorMessage()
const;
59 const xoap::MessageReference& getCurrentMessage(
void);
61 bool execTransition (
const std::string &transition) ;
62 bool execTransition (
const std::string &transition,
const xoap::MessageReference& message) ;
63 bool isInTransition (
void);
64 void setInitialState(toolbox::fsm::State state);
65 void setErrorMessage(
const std::string &errMessage);
69 time_t stateEntranceTime_;
78 volatile bool inTransition_;
79 toolbox::fsm::State provenanceState_;
80 std::map<toolbox::fsm::State, std::map<std::string, std::string, std::less<std::string> > > stateTransitionNameTable_;
81 std::map<toolbox::fsm::State, std::map<std::string, std::string, std::less<std::string> > > stateTransitionParameterTable_;
83 xoap::MessageReference theMessage_;
84 std::string theErrorMessage_;