summaryrefslogtreecommitdiffstats
path: root/src/scxml/qscxmlinvokableservice_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/scxml/qscxmlinvokableservice_p.h')
-rw-r--r--src/scxml/qscxmlinvokableservice_p.h41
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> &parameters);
- 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> &parameters);
+
+ 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