18 #ifndef MAUVE_RUNTIME_ABSTRACT_FINITE_STATE_MACHINE_HPP 19 #define MAUVE_RUNTIME_ABSTRACT_FINITE_STATE_MACHINE_HPP 22 #include "Configurable.hpp" 23 #include "HasProperty.hpp" 39 template <
typename S,
typename C,
typename F>
virtual std::string core_type_name() const =0
Get the type of the FSM core.
AbstractFiniteStateMachine()
Default constructor.
A Finite State Machine describes the component behavior.
Definition: AbstractFiniteStateMachine.hpp:34
Definition: HasProperty.hpp:53
virtual std::size_t get_states_size() const =0
Component class.
Definition: Architecture.hpp:34
std::string type_name() const
Get the type of this FSM.
The MAUVE namespace.
Definition: tracing.hpp:24
virtual std::string shell_type_name() const =0
Get the type of the FSM shell.
Abstract State class.
Definition: AbstractState.hpp:34
Configurable trait.
Definition: Configurable.hpp:25
virtual AbstractState * get_state(std::string const &name) const =0
Get a state of the FSM by name.
virtual int get_state_index(const AbstractState *state) const =0
Get a index of state in the FSM.
virtual ~AbstractFiniteStateMachine()
Default destructor.