27 #define FSM_INVALID_STATE ( unsigned int )( ~0 )
44 typedef std::map< unsigned int, CFsmEvent* >
EventMap;
123 virtual ~CFsm(
void );
129 virtual void Setup(
void );
140 unsigned int eventType,
141 unsigned int nextState );
144 unsigned int eventType,
145 unsigned int nextState,
150 unsigned int eventType )
const;
160 bool Update (
unsigned int eventType,
void* pEventData );
163 virtual bool IsDone (
void )
const;
Manages states, events, actions and transitions between states.
void RegisterCondition(void *pCondition, void *pContext)
void RegisterAction(void *pAction, void *pContext)
void Shutdown(void)
Clear event, action and condition lists and reset state machine.
std::vector< CallbackFunction > CallbackList
Represents a signal in the state machine that a change has occurred.
const EventMap & GetEvents(void) const
void SetEvent(CFsmEvent *pEvent)
bool IsValidEvent(unsigned int eventType) const
void AddState(unsigned int state)
bool ApplyConditions(void) const
CFsmEvent * AddEvent(unsigned int eventType)
virtual void Setup(void)
Constructs the state machine.
CFsmTransition(unsigned int state)
unsigned int GetCurrState(void) const
CFsmTransition * GetTransition(unsigned int state, unsigned int eventType) const
CFsmTransition * GetEventTransition(unsigned int eventType) const
bool IsFirstTime(void) const
const StateSet & GetStates(void) const
void SetNextState(unsigned int nextState)
std::vector< CFsmTransition * > TransitionList
std::map< unsigned int, CFsmEvent * > EventMap
bool RunActions(void) const
const TransitionList & GetTransitions(void) const
CallbackList m_Conditions
bool(* ACTION)(void *pContext, const CFsmEvent *pEvent)
unsigned int GetNextState(void) const
bool IsValidState(unsigned int state) const
bool Update(unsigned int eventType, void *pEventData)
void SetCurrState(unsigned int state)
CFsmEvent * GetEvent(void) const
NONCOPYABLE(CFsmTransition)
unsigned int GetCurrState(void) const
TransitionList m_Transitions
void SetParamRef(void *pParam)
CFsmTransition * AddTransition(unsigned int state, unsigned int eventType, unsigned int nextState)
CFsmEvent(unsigned int type)
unsigned int m_FirstState
virtual bool IsDone(void) const
unsigned int GetType(void) const
void SetFirstState(unsigned int firstState)
unsigned int GetNextState(void) const
std::set< unsigned int > StateSet
void SetNextState(unsigned int nextState)
const CallbackList & GetConditions(void) const
const CallbackList & GetActions(void) const
bool(* CONDITION)(void *pContext)
An association of event, condition, action and next state.