tin  1.5.9
transition.h File Reference

Authoring vocabulary for transitions, pseudostates, and synchronization. More...

#include <concepts>
#include <type_traits>
#include <utility>
#include "tsm/type_list.h"
Include dependency graph for transition.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 tsm
 
 tsm::detail
 

Typedefs

template<typename ForkMarker , typename... Targets>
using tsm::detail::Fork = fork_to< ForkMarker, Targets... >
 
template<typename JoinMarker , typename... Sources>
using tsm::detail::Join = join_from< JoinMarker, Sources... >
 
template<typename JoinMarker , typename Target >
using tsm::detail::JoinTo = join_to< JoinMarker, Target >
 
template<typename From , typename Event , typename To , auto Action>
using tsm::detail::with_action = transition_with_action< transition_kind::external, From, Event, To, Action >
 
template<typename From , typename Event , typename To , auto Guard>
using tsm::detail::with_guard = transition_with_guard< transition_kind::external, From, Event, To, Guard >
 
template<typename From , typename Event , typename To , auto Guard, auto Action>
using tsm::detail::with_guard_action = transition_with_guard_action< transition_kind::external, From, Event, To, Guard, Action >
 
template<typename T >
using tsm::detail::transitions_of_t = typename transitions_of< T >::type
 

Enumerations

enum class  tsm::detail::transition_kind { tsm::detail::external , tsm::detail::local , tsm::detail::internal , tsm::detail::reentering_external }
 

Functions

template<typename Transition >
consteval transition_kind tsm::detail::get_transition_kind ()
 
template<typename T >
 tsm::detail::requires (!has_transition_type_c< T > &&has_transition_member_c< T >) struct transitions_of< T >
 

Variables

template<typename T >
concept tsm::detail::final_state_like
 
template<typename T >
concept tsm::detail::history_state_like
 
template<typename T >
concept tsm::detail::deep_history_state_like
 
template<typename T >
concept tsm::detail::choice_like = std::derived_from<T, choice>
 
template<typename T >
concept tsm::detail::junction_like = std::derived_from<T, junction>
 
template<typename T >
concept tsm::detail::decision_pseudostate_like = choice_like<T> || junction_like<T>
 
template<typename T >
concept tsm::detail::region_like = std::derived_from<T, region>
 
template<typename T >
concept tsm::detail::fork_like = std::derived_from<T, fork>
 
template<typename T >
concept tsm::detail::join_like = std::derived_from<T, join>
 
template<typename T >
concept tsm::detail::defer_like
 
template<typename T >
concept tsm::detail::fork_rule_like
 
template<typename T >
concept tsm::detail::join_from_rule_like
 
template<typename T >
concept tsm::detail::join_to_rule_like
 
template<typename T >
concept tsm::detail::synchronization_rule_like
 
template<typename T >
concept tsm::detail::has_synchronization_type_c
 
template<typename Transition >
concept tsm::detail::transition_edge_like
 
template<typename Transition >
concept tsm::detail::transition_like
 
template<typename Transition >
concept tsm::detail::transition_has_guard
 
template<typename Transition >
concept tsm::detail::transition_has_action
 
template<typename Transition >
constexpr transition_kind tsm::detail::transition_kind_v
 
template<typename Transition , typename From , typename Event >
concept tsm::detail::transition_matches
 
template<typename T >
concept tsm::detail::has_transition_type_c
 
template<typename T >
concept tsm::detail::has_transition_member_c
 
template<typename T >
concept tsm::detail::has_transitions_c
 

Detailed Description

Authoring vocabulary for transitions, pseudostates, and synchronization.

Defines the structural C++ records placed in a machine definition: event transitions, guards, actions, local/internal/external semantics, choice, junction, history, fork/join, and orthogonal-region declarations.