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 |