StateMachine
Loading...
Searching...
No Matches
StateMachine4.hpp File Reference
#include <algorithm>
#include <functional>
#include <tuple>
#include <unordered_map>
#include <utility>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

class  state_machine_t< state_t, event_t >
 

Typedefs

template<typename state_t , typename event_t , typename data_t >
using guard_t = std::function< bool(const data_t &)>
 
template<typename state_t , typename event_t , typename data_t >
using action_t = std::function< void(const data_t &)>
 
template<typename state_t , typename data_t >
using enter_action_t = std::function< void(const data_t &)>
 
template<typename state_t , typename data_t >
using leave_action_t = std::function< void(const data_t &)>
 
template<typename state_t , typename data_t >
using enter_actions_t = std::unordered_map< state_t, enter_action_t< state_t, data_t > >
 
template<typename state_t , typename data_t >
using leave_actions_t = std::unordered_map< state_t, leave_action_t< state_t, data_t > >
 
template<typename state_t , typename event_t , typename data_t >
using transition_t = std::pair< std::pair< state_t, event_t >, std::tuple< guard_t< state_t, event_t, data_t >, action_t< state_t, event_t, data_t >, state_t > >
 
template<typename state_t , typename event_t , typename data_t >
using transition_table_t = std::vector< transition_t< state_t, event_t, data_t > >
 

Typedef Documentation

◆ action_t

template<typename state_t , typename event_t , typename data_t >
using action_t = std::function<void(const data_t &)>

◆ enter_action_t

template<typename state_t , typename data_t >
using enter_action_t = std::function<void(const data_t &)>

◆ enter_actions_t

template<typename state_t , typename data_t >
using enter_actions_t = std::unordered_map<state_t, enter_action_t<state_t, data_t> >

◆ guard_t

template<typename state_t , typename event_t , typename data_t >
using guard_t = std::function<bool(const data_t &)>

◆ leave_action_t

template<typename state_t , typename data_t >
using leave_action_t = std::function<void(const data_t &)>

◆ leave_actions_t

template<typename state_t , typename data_t >
using leave_actions_t = std::unordered_map<state_t, leave_action_t<state_t, data_t> >

◆ transition_t

template<typename state_t , typename event_t , typename data_t >
using transition_t = std::pair<std::pair<state_t, event_t>, std::tuple<guard_t<state_t, event_t, data_t>, action_t<state_t, event_t, data_t>, state_t> >

◆ transition_table_t

template<typename state_t , typename event_t , typename data_t >
using transition_table_t = std::vector<transition_t<state_t, event_t, data_t> >