27 #define FSM_INVALID_STATE ( unsigned int )( ~0 ) 44 typedef std::map< unsigned int, CFsmEvent* >
EventMap;
85 void RegisterCondition (
90 void SetNextState (
unsigned int nextState );
95 bool ApplyConditions (
void )
const;
96 bool RunActions (
void )
const;
123 virtual ~
CFsm(
void );
129 virtual void Setup(
void );
136 void AddState (
unsigned int state );
137 CFsmEvent* AddEvent (
unsigned int eventType );
140 unsigned int eventType,
141 unsigned int nextState );
144 unsigned int eventType,
145 unsigned int nextState,
150 unsigned int eventType )
const;
151 CFsmTransition* GetEventTransition (
unsigned int eventType )
const;
152 void SetFirstState (
unsigned int firstState );
153 void SetCurrState (
unsigned int state );
155 void SetNextState (
unsigned int nextState ) { m_NextState = nextState; }
160 bool Update (
unsigned int eventType,
void* pEventData );
161 bool IsValidState (
unsigned int state )
const;
162 bool IsValidEvent (
unsigned int eventType )
const;
163 virtual bool IsDone (
void )
const;
166 bool IsFirstTime (
void )
const;
Manages states, events, actions and transitions between states.
Definition: fsm.h:117
unsigned int m_NextState
Definition: fsm.h:171
std::vector< CallbackFunction > CallbackList
Definition: fsm.h:46
Represents a signal in the state machine that a change has occurred.
Definition: fsm.h:53
const EventMap & GetEvents(void) const
Definition: fsm.h:158
CFsmEvent * m_Event
Definition: fsm.h:101
unsigned int m_Type
Definition: fsm.h:66
void * pFunction
Definition: fsm.h:38
bool m_Done
Definition: fsm.h:168
static void Shutdown()
Definition: h_mgr.cpp:762
void * pContext
Definition: fsm.h:39
unsigned int GetCurrState(void) const
Definition: fsm.h:92
bool(* ACTION)(void *pContext, const CFsmEvent *pEvent)
Definition: fsm.h:34
bool(* CONDITION)(void *pContext)
Definition: fsm.h:33
const StateSet & GetStates(void) const
Definition: fsm.h:157
void * m_Param
Definition: fsm.h:67
void SetNextState(unsigned int nextState)
Definition: fsm.h:155
unsigned int m_CurrState
Definition: fsm.h:99
std::vector< CFsmTransition * > TransitionList
Definition: fsm.h:45
std::map< unsigned int, CFsmEvent * > EventMap
Definition: fsm.h:44
unsigned int m_CurrState
Definition: fsm.h:170
const TransitionList & GetTransitions(void) const
Definition: fsm.h:159
CallbackList m_Conditions
Definition: fsm.h:103
unsigned int GetNextState(void) const
Definition: fsm.h:91
EventMap m_Events
Definition: fsm.h:173
CFsmEvent * GetEvent(void) const
Definition: fsm.h:89
unsigned int GetCurrState(void) const
Definition: fsm.h:154
TransitionList m_Transitions
Definition: fsm.h:174
void SetParamRef(void *pParam)
Definition: fsm.cpp:47
CFsmEvent(unsigned int type)
Definition: fsm.cpp:28
StateSet m_States
Definition: fsm.h:172
unsigned int m_FirstState
Definition: fsm.h:169
~CFsmEvent(void)
Definition: fsm.cpp:38
unsigned int m_NextState
Definition: fsm.h:100
CallbackList m_Actions
Definition: fsm.h:102
unsigned int GetType(void) const
Definition: fsm.h:61
unsigned int GetNextState(void) const
Definition: fsm.h:156
void * GetParamRef(void)
Definition: fsm.h:62
std::set< unsigned int > StateSet
Definition: fsm.h:43
const CallbackList & GetConditions(void) const
Definition: fsm.h:94
const CallbackList & GetActions(void) const
Definition: fsm.h:93
An association of event, condition, action and next state.
Definition: fsm.h:74