// Copyright (C) 2020 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QSCXMLSTATEMACHINEINFO_H #define QSCXMLSTATEMACHINEINFO_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include #include #include QT_BEGIN_NAMESPACE class QScxmlStateMachine; class QScxmlStateMachineInfoPrivate; class Q_SCXML_EXPORT QScxmlStateMachineInfo: public QObject { Q_OBJECT public: // types typedef int StateId; typedef int TransitionId; static const StateId InvalidStateId = -1; static const TransitionId InvalidTransitionId = -1; enum StateType : int { InvalidState = -1, NormalState = 0, ParallelState = 1, FinalState = 2, ShallowHistoryState = 3, DeepHistoryState = 4 }; enum TransitionType : int { InvalidTransition = -1, InternalTransition = 0, ExternalTransition = 1, SyntheticTransition = 2 }; public: // methods QScxmlStateMachineInfo(QScxmlStateMachine *stateMachine); QScxmlStateMachine *stateMachine() const; QList allStates() const; QList allTransitions() const; QString stateName(int stateId) const; StateId stateParent(StateId stateId) const; StateType stateType(int stateId) const; QList stateChildren(StateId stateId) const; TransitionId initialTransition(StateId stateId) const; TransitionType transitionType(TransitionId transitionId) const; StateId transitionSource(TransitionId transitionId) const; QList transitionTargets(TransitionId transitionId) const; QList transitionEvents(TransitionId transitionId) const; QList configuration() const; Q_SIGNALS: void statesEntered(const QList &states); void statesExited(const QList &states); void transitionsTriggered(const QList &transitions); private: Q_DECLARE_PRIVATE(QScxmlStateMachineInfo) }; QT_END_NAMESPACE #endif // QSCXMLSTATEMACHINEINFO_H