1 #ifndef _ots_FiniteStateMachine_h 
    2 #define _ots_FiniteStateMachine_h 
    4 #include <toolbox/fsm/FiniteStateMachine.h> 
    5 #include <xoap/MessageReference.h> 
   16     using toolbox::fsm::FiniteStateMachine::addStateTransition;
 
   18     template<
class OBJECT>
 
   19     void addStateTransition(toolbox::fsm::State from,
 
   20                             toolbox::fsm::State to,
 
   21                             const std::string&  input,
 
   22                             const std::string&  transitionName,
 
   24                             void (OBJECT::*func)(toolbox::Event::Reference))
 
   27         stateTransitionNameTable_[from][input] = transitionName;
 
   28         toolbox::fsm::FiniteStateMachine::addStateTransition(from, to, input, obj, func);
 
   31     template<
class OBJECT>
 
   32     void                    addStateTransition          (toolbox::fsm::State from,
 
   33                                                         toolbox::fsm::State to,
 
   34                                                         const std::string&  input,
 
   35                                                         const std::string&  transitionName,
 
   36                                                         const std::string&  transitionParameter,
 
   38                                                         void (OBJECT::*func)(toolbox::Event::Reference))
 
   41         stateTransitionParameterTable_[from][input] = transitionParameter;
 
   42         addStateTransition(from, to, input, transitionName, obj, func);
 
   45     toolbox::fsm::State             getProvenanceState          (
void);
 
   46     toolbox::fsm::State             getTransitionFinalState     (
const std::string& transition);
 
   48     std::string                     getProvenanceStateName      (
void);
 
   49     std::string                     getCurrentStateName         (
void);
 
   51     std::string                     getCurrentTransitionName    (
const std::string& transition = 
"");
 
   52     std::string                     getTransitionName           (
const toolbox::fsm::State from, 
const std::string& transition);
 
   53     std::string                     getTransitionParameter      (
const toolbox::fsm::State from, 
const std::string& transition);
 
   54     std::string                     getTransitionFinalStateName (
const std::string& transition);
 
   55     const std::string&              getErrorMessage             (
void) 
const;
 
   56     const std::string&              getStateMachineName         (
void)
 const { 
return stateMachineName_; }
 
   57     void                            setStateMachineName         (
const std::string& name) { stateMachineName_ = name; }
 
   59     const xoap::MessageReference&   getCurrentMessage           (
void) { 
return theMessage_; }
 
   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, 
bool append = 
true);
 
   67     static const std::string                FAILED_STATE_NAME, ERROR_TRANSITION_NAME;
 
   68     static const char                       FAILED_STATE;
 
   70     time_t stateEntranceTime_;
 
   82     toolbox::fsm::State                         provenanceState_;
 
   83     std::string                                 currentTransition_;
 
   84     std::map<toolbox::fsm::State, 
 
   85         std::map<std::string, std::string, 
 
   86         std::less<std::string> > >              stateTransitionNameTable_;
 
   87     std::map<toolbox::fsm::State, 
 
   88         std::map<std::string, std::string, 
 
   89         std::less<std::string> > >              stateTransitionParameterTable_;
 
   91     xoap::MessageReference                      theMessage_;
 
   92     std::string                                 theErrorMessage_;
 
   93     std::string                                 stateMachineName_;
 
volatile bool inTransition_
time_t getTimeInState(void) const