libzypp 17.37.17
statemachine.h File Reference
#include <zypp-core/zyppng/base/signals.h>
#include <zypp-core/zyppng/base/Base>
#include <variant>
#include <tuple>
#include <functional>
#include <memory>
#include <optional>
Include dependency graph for statemachine.h:

Go to the source code of this file.

Classes

struct  zyppng::detail::StateWithTransitions< State, Transitions >
struct  zyppng::detail::add_type_to_collection< Templ, NewType, Templ< Types... >, true >
struct  zyppng::detail::add_type_to_collection< Templ, NewType, Templ< Types... >, false >
struct  zyppng::detail::collect_transitions_helper< State, TupleSoFar, Head, Transitions >
 collect all transitions that have the same SourceState as the first type argument More...
struct  zyppng::detail::collect_transitions_helper< State, TupleSoFar, Head >
struct  zyppng::detail::collect_transitions< State, Transitions >
struct  zyppng::detail::make_state_set_helper< VariantSoFar, Head, Transitions >
 Iterates over the list of Transitions and collects them all in a std::variant<State1, State2, ...> type. More...
struct  zyppng::detail::make_state_set_helper< VariantSoFar, Head >
struct  zyppng::detail::make_state_set< Head, Transitions >
struct  zyppng::detail::is_same_state< A, B >
 Evaluates to true if type A and type B wrap the same State type. More...
struct  zyppng::detail::make_statewithtransition< State, Transitions >
 Turns a State type into its StateWithTransitions counterpart. More...
struct  zyppng::detail::make_statewithtransition_set_helper< VariantSoFar, std::variant< HeadState, State... >, Transitions... >
struct  zyppng::detail::make_statewithtransition_set_helper< VariantSoFar, std::variant< HeadState >, Transitions... >
struct  zyppng::detail::make_statewithtransition_set< NoState, std::variant< HeadState, States... >, Transitions... >
struct  zyppng::Transition< Source, ev, Target, Cond, Op >
class  zyppng::Statemachine< Derived, StateId, Transitions >
 This defines the actual StateMachine. More...
struct  zyppng::Statemachine< Derived, StateId, Transitions >::_InitialState
class  zyppng::BasicState< StatemachineType, isFin >
class  zyppng::SimpleState< StatemachineType, sId, isFin >

Namespaces

namespace  zyppng
namespace  zyppng::detail

Typedefs

template<typename T>
using zyppng::detail::EventSource = SignalProxy<void()> (T::*)()

Functions

template<typename Variant, typename Type, template< typename, typename > typename Compare = std::is_same, size_t I = 0>
constexpr bool zyppng::detail::VariantHasType ()
 Constexpr function that evaluates to true if a variant type Variant already contains the type Type.
constexpr bool zyppng::DefaultStateCondition (true)
constexpr std::nullptr_t zyppng::DefaultStateTransition (nullptr)