|
Pyrogenesis
13997
|
Manages states, events, actions and transitions between states. More...
#include <fsm.h>
Public Member Functions | |
| CFsm (void) | |
| virtual | ~CFsm (void) |
| virtual void | Setup (void) |
| Constructs the state machine. More... | |
| void | Shutdown (void) |
| Clear event, action and condition lists and reset state machine. More... | |
| void | AddState (unsigned int state) |
| CFsmEvent * | AddEvent (unsigned int eventType) |
| CFsmTransition * | AddTransition (unsigned int state, unsigned int eventType, unsigned int nextState) |
| CFsmTransition * | AddTransition (unsigned int state, unsigned int eventType, unsigned int nextState, void *pAction, void *pContext) |
| CFsmTransition * | GetTransition (unsigned int state, unsigned int eventType) const |
| CFsmTransition * | GetEventTransition (unsigned int eventType) const |
| void | SetFirstState (unsigned int firstState) |
| void | SetCurrState (unsigned int state) |
| unsigned int | GetCurrState (void) const |
| void | SetNextState (unsigned int nextState) |
| unsigned int | GetNextState (void) const |
| const StateSet & | GetStates (void) const |
| const EventMap & | GetEvents (void) const |
| const TransitionList & | GetTransitions (void) const |
| bool | Update (unsigned int eventType, void *pEventData) |
| bool | IsValidState (unsigned int state) const |
| bool | IsValidEvent (unsigned int eventType) const |
| virtual bool | IsDone (void) const |
Private Member Functions | |
| NONCOPYABLE (CFsm) | |
| bool | IsFirstTime (void) const |
Private Attributes | |
| bool | m_Done |
| unsigned int | m_FirstState |
| unsigned int | m_CurrState |
| unsigned int | m_NextState |
| StateSet | m_States |
| EventMap | m_Events |
| TransitionList | m_Transitions |
Manages states, events, actions and transitions between states.
It provides an interface for advertising events and track the current state. The implementation is a Mealy state machine, so the system respond to events and execute some action.
A Mealy state machine has behaviour associated with state transitions; Mealy machines are event driven where an event triggers a state transition
| CFsmTransition * CFsm::AddTransition | ( | unsigned int | state, |
| unsigned int | eventType, | ||
| unsigned int | nextState | ||
| ) |
| CFsmTransition * CFsm::AddTransition | ( | unsigned int | state, |
| unsigned int | eventType, | ||
| unsigned int | nextState, | ||
| void * | pAction, | ||
| void * | pContext | ||
| ) |
| CFsmTransition* CFsm::GetEventTransition | ( | unsigned int | eventType | ) | const |
| CFsmTransition * CFsm::GetTransition | ( | unsigned int | state, |
| unsigned int | eventType | ||
| ) | const |
|
inline |
|
private |
|
virtual |
| void CFsm::Shutdown | ( | void | ) |
| bool CFsm::Update | ( | unsigned int | eventType, |
| void * | pEventData | ||
| ) |
|
private |
1.8.5