Zth (libzth)
fsm14.h File Reference
#include <libzth/macros.h>
#include <libzth/allocator.h>
#include <libzth/sync.h>
#include <libzth/util.h>
#include <atomic>
#include <bitset>
#include <functional>
#include <limits>
#include <stdexcept>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

struct  zth::fsm::invalid_fsm
 Exception thrown when the FSM description is incorrect. More...
 
class  zth::fsm::Symbol
 A input/state symbol. More...
 
class  zth::fsm::Named< enable >
 
class  zth::fsm::Named< false >
 
class  zth::fsm::Named< true >
 
class  zth::fsm::Callback< T, R, haveArg, isMember, isOk >
 
class  zth::fsm::Callback< T, R, false, false, true >
 
class  zth::fsm::Callback< T, R, true, false, true >
 
class  zth::fsm::Callback< T, R, false, true, true >
 
class  zth::fsm::GuardPollInterval
 
class  zth::fsm::Guard
 
class  zth::fsm::TypedGuard< T >
 
class  zth::fsm::InputGuard
 
class  zth::fsm::Action
 
class  zth::fsm::TypedAction< T >
 
class  zth::fsm::GuardedActionBase
 
class  zth::fsm::GuardedAction
 
class  zth::fsm::TransitionStart
 
class  zth::fsm::Transition
 
class  zth::fsm::TransitionsBase
 
class  zth::fsm::Transitions< Size >
 
struct  zth::fsm::Transitions< Size >::CompiledTransition
 
class  zth::fsm::BasicFsm
 Basic FSM base class. More...
 
class  zth::fsm::Fsm
 FSM base class. More...
 

Namespaces

 zth
 
 zth::fsm
 

Typedefs

using zth::fsm::State = Symbol
 A state within the FSM. More...
 

Functions

constexpr Symbol zth::fsm::operator""_S (char const *s, size_t len) noexcept
 Literal suffix to convert a string literal to zth::fsm::Symbol. More...
 
template<typename T >
constexpr auto zth::fsm::guard (T &&g, char const *name=nullptr)
 Create a guard from a function. More...
 
constexpr auto zth::fsm::guard (Symbol &&input) noexcept
 Create a guard from a input symbol. More...
 
bool zth::fsm::always_guard () noexcept
 
bool zth::fsm::never_guard () noexcept
 
template<typename T >
constexpr auto zth::fsm::action (T &&a, char const *name=nullptr)
 Create an action from a function. More...
 
void zth::fsm::nothing_action ()
 
constexpr auto zth::fsm::operator/ (Guard const &g, Action const &a) noexcept
 
constexpr auto zth::fsm::operator+ (Symbol &&input) noexcept
 
constexpr auto zth::fsm::input (Symbol &&symbol) noexcept
 Create a guard from an input symbol. More...
 
constexpr auto zth::fsm::operator+ (GuardedAction &&g) noexcept
 
constexpr auto zth::fsm::operator/ (GuardedAction &&ga, Action const &a)
 
constexpr auto zth::fsm::operator+ (State &&state, GuardedAction &&action) noexcept
 
constexpr auto zth::fsm::operator+ (State &&state, Guard const &guard) noexcept
 
constexpr auto zth::fsm::operator+ (State &&state, Symbol &&input) noexcept
 
constexpr auto zth::fsm::operator+ (char const *state, Symbol &&input) noexcept
 
constexpr auto zth::fsm::operator+ (State &&state, char const *input) noexcept
 
constexpr auto const & zth::fsm::operator+ (Guard const &guard) noexcept
 
constexpr auto zth::fsm::operator/ (State &&state, Action const &action) noexcept
 
constexpr auto zth::fsm::operator+ (State &&state, TransitionStart &&t)
 
constexpr Transition zth::fsm::operator>>= (TransitionStart &&from, State &&to) noexcept
 
constexpr Transition zth::fsm::operator>>= (State &&from, State &&to) noexcept
 
constexpr Transition zth::fsm::operator>>= (char const *from, State &&to) noexcept
 
constexpr Transition zth::fsm::operator>>= (Guard const &from, State &&to) noexcept
 
constexpr Transition zth::fsm::operator>>= (Action const &from, State &&to) noexcept
 
constexpr Transition zth::fsm::operator>>= (GuardedAction &&from, State &&to) noexcept
 
template<typename... T>
constexpr auto zth::fsm::compile (T &&... t)
 Compile a transition description. More...
 

Variables

constexpr auto zth::fsm::always
 Trivial guard that is always enabled. More...
 
constexpr auto zth::fsm::never
 Trivial guard that is never enabled. More...
 
constexpr auto zth::fsm::nothing
 Trivial action that does nothing. More...
 
constexpr auto zth::fsm::entry
 Guard that is only enabled upon entry of a state. More...
 
constexpr auto zth::fsm::push
 Action to push the new state onto the stack. More...
 
constexpr auto zth::fsm::pop
 Action to pop the current state from the stack. More...
 
constexpr auto zth::fsm::popped
 Guard to indicate that the current state was reached via pop. More...
 
constexpr auto zth::fsm::stop
 Action to return from Fsm::run(). More...
 
constexpr auto zth::fsm::consume
 Action consume the current input symbol. More...
 
template<time_t s>
constexpr auto zth::fsm::timeout_s
 A guard that is enabled after a s seconds after entering the current state. More...
 
template<uint64_t ms>
constexpr auto zth::fsm::timeout_ms
 A guard that is enabled after a ms milliseconds after entering the current state. More...
 
template<uint64_t us>
constexpr auto zth::fsm::timeout_us
 A guard that is enabled after a us microseconds after entering the current state. More...