qmljs: fingerprints for documents, libraries and FakeMetaObjects

Change-Id: Ib9c9b86fbed19539dc42696292bdb3b93dd1b575
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
Fawzi Mohamed
2013-11-13 16:31:04 +01:00
parent e1b44e870f
commit 7fb87fbb06
11 changed files with 360 additions and 24 deletions

View File

@@ -71,6 +71,8 @@ public:
Language::Enum language() const;
void setLanguage(Language::Enum l);
QString importId() const;
QByteArray fingerprint() const;
AST::UiProgram *qmlProgram() const;
AST::Program *jsProgram() const;
AST::ExpressionNode *expression() const;
@@ -113,6 +115,7 @@ private:
QString _componentName;
QString _source;
QWeakPointer<Document> _ptr;
QByteArray _fingerprint;
int _editorRevision;
Language::Enum _language;
bool _parsedCorrectly;
@@ -127,6 +130,8 @@ public:
QString uri;
LanguageUtils::ComponentVersion version;
QString cppName;
void addToHash(QCryptographicHash &hash) const;
};
class QMLJS_EXPORT LibraryInfo
@@ -154,15 +159,21 @@ private:
typedef QList<LanguageUtils::FakeMetaObject::ConstPtr> FakeMetaObjectList;
FakeMetaObjectList _metaObjects;
QList<ModuleApiInfo> _moduleApis;
QByteArray _fingerprint;
PluginTypeInfoStatus _dumpStatus;
QString _dumpError;
public:
explicit LibraryInfo(Status status = NotScanned);
explicit LibraryInfo(const QmlDirParser &parser);
explicit LibraryInfo(const QmlDirParser &parser, const QByteArray &fingerprint = QByteArray());
~LibraryInfo();
QByteArray calculateFingerprint() const;
void updateFingerprint();
QByteArray fingerprint() const
{ return _fingerprint; }
QList<QmlDirParser::Component> components() const
{ return _components; }