diff options
Diffstat (limited to 'src/scxml/qscxmlinvokableservice_p.h')
-rw-r--r-- | src/scxml/qscxmlinvokableservice_p.h | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/src/scxml/qscxmlinvokableservice_p.h b/src/scxml/qscxmlinvokableservice_p.h index 52bd6d0..e2a9e7b 100644 --- a/src/scxml/qscxmlinvokableservice_p.h +++ b/src/scxml/qscxmlinvokableservice_p.h @@ -71,7 +71,7 @@ public: QScxmlStateMachine *parentStateMachine; }; -class QScxmlInvokableServiceFactoryPrivate +class QScxmlInvokableServiceFactoryPrivate : public QObjectPrivate { public: QScxmlInvokableServiceFactoryPrivate( @@ -79,23 +79,50 @@ public: const QVector<QScxmlExecutableContent::StringId> &names, const QVector<QScxmlExecutableContent::ParameterInfo> ¶meters); - QString calculateSrcexpr(QScxmlStateMachine *parent, bool *ok) const; - QScxmlExecutableContent::InvokeInfo invokeInfo; QVector<QScxmlExecutableContent::StringId> names; QVector<QScxmlExecutableContent::ParameterInfo> parameters; }; -class QScxmlScxmlServicePrivate : public QScxmlInvokableServicePrivate +class Q_SCXML_EXPORT QScxmlScxmlService: public QScxmlInvokableService { + Q_OBJECT + Q_DECLARE_PRIVATE(QScxmlInvokableService) public: - QScxmlScxmlServicePrivate(QScxmlStateMachine *stateMachine, - QScxmlStateMachine *parentStateMachine); - ~QScxmlScxmlServicePrivate(); + QScxmlScxmlService(QScxmlStateMachine *stateMachine, + QScxmlStateMachine *parentStateMachine, + QScxmlInvokableServiceFactory *parent); + ~QScxmlScxmlService(); + + bool start() Q_DECL_OVERRIDE; + QString id() const Q_DECL_OVERRIDE; + QString name() const Q_DECL_OVERRIDE; + void postEvent(QScxmlEvent *event) Q_DECL_OVERRIDE; QScxmlStateMachine *stateMachine; }; +class QScxmlStaticScxmlServiceFactoryPrivate : public QScxmlInvokableServiceFactoryPrivate +{ +public: + QScxmlStaticScxmlServiceFactoryPrivate( + const QMetaObject *metaObject, + const QScxmlExecutableContent::InvokeInfo &invokeInfo, + const QVector<QScxmlExecutableContent::StringId> &names, + const QVector<QScxmlExecutableContent::ParameterInfo> ¶meters); + + const QMetaObject *metaObject; +}; + +QScxmlScxmlService *invokeDynamicScxmlService(const QString &sourceUrl, + QScxmlStateMachine *parentStateMachine, + QScxmlInvokableServiceFactory *factory); +QScxmlScxmlService *invokeStaticScxmlService(QScxmlStateMachine *childStateMachine, + QScxmlStateMachine *parentStateMachine, + QScxmlInvokableServiceFactory *factory); +QString calculateSrcexpr(QScxmlStateMachine *parent, QScxmlExecutableContent::EvaluatorId srcexpr, + bool *ok); + QT_END_NAMESPACE #endif // QSCXMLINVOKABLESERVICE_P_H |