iaux::iaStateMachine Class Reference

#include <iaStateMachine.h>

Public Types

enum class  iaEvent { Enter , ReEnter , NoChange }
 

Public Member Functions

 iaStateMachine ()=default
 
 ~iaStateMachine ()=default
 
iaStateID addState (const iaString &name="")
 
void setInitialState (iaStateID id)
 
iaStateID getInitialState () const
 
iaStateID getCurrentState () const
 
iaTransitionID addTransition (iaStateID from, iaStateID to)
 
std::vector< iaTransitionIDgetOutgoingTransitions (iaStateID stateID)
 
void activateGate (iaTransitionID transitionID, uint32 index)
 
void deactivateGate (iaTransitionID transitionID, uint32 index)
 
void openGate (iaTransitionID transitionID, uint32 index)
 
void closeGate (iaTransitionID transitionID, uint32 index)
 
void resetGates (iaTransitionID transitionID)
 
iaStateMachine::iaEvent update ()
 
void start ()
 
bool isValid () const
 

Detailed Description

state machine

Member Enumeration Documentation

◆ iaEvent

enum class iaux::iaStateMachine::iaEvent
strong

event type definition

Enumerator
Enter 
ReEnter 
NoChange 

Constructor & Destructor Documentation

◆ iaStateMachine()

iaux::iaStateMachine::iaStateMachine ( )
default

does nothing

◆ ~iaStateMachine()

iaux::iaStateMachine::~iaStateMachine ( )
default

does nothing

Member Function Documentation

◆ activateGate()

void iaux::iaStateMachine::activateGate ( iaTransitionID  transitionID,
uint32  index 
)

activate a gate for given transition

Parameters
transitionIDthe given transition
indexthe gate index to activate (0-15)

◆ addState()

iaStateID iaux::iaStateMachine::addState ( const iaString name = "")

creates and adds a new state

Parameters
nameoptional name of state
Returns
new state id

◆ addTransition()

uint32 iaux::iaStateMachine::addTransition ( iaStateID  from,
iaStateID  to 
)

creates transition form source state to destination state

Parameters
fromsource state
todestination state
Returns
transition id

◆ closeGate()

void iaux::iaStateMachine::closeGate ( iaTransitionID  transitionID,
uint32  index 
)

close a gate for given transition

Parameters
transitionIDthe given transition
indexthe gate index to close (0-15)

◆ deactivateGate()

void iaux::iaStateMachine::deactivateGate ( iaTransitionID  transitionID,
uint32  index 
)

deactivate a gate for given transition

Parameters
transitionIDthe given transition
indexthe gate index to deactivate (0-15)

◆ getCurrentState()

iaStateID iaux::iaStateMachine::getCurrentState ( ) const
Returns
current state id

◆ getInitialState()

iaStateID iaux::iaStateMachine::getInitialState ( ) const
Returns
initial state

◆ getOutgoingTransitions()

std::vector< iaTransitionID > iaux::iaStateMachine::getOutgoingTransitions ( iaStateID  stateID)
Returns
outgoing transition for given state id
Parameters
stateIDthe given state id

◆ isValid()

bool iaux::iaStateMachine::isValid ( ) const
Returns
true if state machine is well defined and ready to use

◆ openGate()

void iaux::iaStateMachine::openGate ( iaTransitionID  transitionID,
uint32  index 
)

open a gate for given transition

Parameters
transitionIDthe given transition
indexthe gate index to open (0-15)

◆ resetGates()

void iaux::iaStateMachine::resetGates ( iaTransitionID  transitionID)

closes all gates on for given transition

Parameters
transitionIDthe given transition

◆ setInitialState()

void iaux::iaStateMachine::setInitialState ( iaStateID  id)

sets the initial state by id

Parameters
idthe specified state id

◆ start()

void iaux::iaStateMachine::start ( )

starts the state machine at it initial state

◆ update()

iaStateMachine::iaEvent iaux::iaStateMachine::update ( )

processes the state machine

Returns
latest event

The documentation for this class was generated from the following files: