aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlprivate.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-03-29 10:05:09 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-29 21:20:22 +0100
commited9a71b85849a653a3cc710e59b885002fc6f506 (patch)
tree61ea8efcc39bca1e0d55f0b87e66164ef51d98b6 /src/qml/qml/qqmlprivate.h
parent869a199da9ba173e2dea948ec132d089b2513128 (diff)
Make it possible to supply compilation units from plugins
This also cleans up the script and type initialization in the type loader, for example by getting rid of the m_irUnit member for scripts. Change-Id: I207afeb21c0bae9091d3c7b4cac2e80e9aae0ea3 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlprivate.h')
-rw-r--r--src/qml/qml/qqmlprivate.h31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlprivate.h b/src/qml/qml/qqmlprivate.h
index 90e7961e6b..5460c99f1d 100644
--- a/src/qml/qml/qqmlprivate.h
+++ b/src/qml/qml/qqmlprivate.h
@@ -61,6 +61,22 @@
QT_BEGIN_NAMESPACE
+namespace QQmlPrivate {
+struct CachedQmlUnit;
+}
+
+namespace QV4 {
+struct ExecutionEngine;
+namespace CompiledData {
+struct QmlUnit;
+struct CompilationUnit;
+}
+typedef CompiledData::CompilationUnit *(*CompilationUnitFactoryFunction)();
+}
+namespace QmlIR {
+struct Document;
+typedef void (*IRLoaderFunction)(Document *, const QQmlPrivate::CachedQmlUnit *);
+}
typedef QObject *(*QQmlAttachedPropertiesFunc)(QObject *);
@@ -268,13 +284,26 @@ namespace QQmlPrivate
const char *typeName;
};
+ struct CachedQmlUnit {
+ const QV4::CompiledData::QmlUnit *qmlData;
+ QV4::CompilationUnitFactoryFunction createCompilationUnit;
+ QmlIR::IRLoaderFunction loadIR;
+ };
+
+ typedef const CachedQmlUnit *(*QmlUnitCacheLookupFunction)(const QUrl &url);
+ struct RegisterQmlUnitCacheHook {
+ int version;
+ QmlUnitCacheLookupFunction lookupCachedQmlUnit;
+ };
+
enum RegistrationType {
TypeRegistration = 0,
InterfaceRegistration = 1,
AutoParentRegistration = 2,
SingletonRegistration = 3,
CompositeRegistration = 4,
- CompositeSingletonRegistration = 5
+ CompositeSingletonRegistration = 5,
+ QmlUnitCacheHookRegistration = 6
};
int Q_QML_EXPORT qmlregister(RegistrationType, void *);