aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/typedatabase.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/ApiExtractor/typedatabase.h')
-rw-r--r--sources/shiboken2/ApiExtractor/typedatabase.h35
1 files changed, 31 insertions, 4 deletions
diff --git a/sources/shiboken2/ApiExtractor/typedatabase.h b/sources/shiboken2/ApiExtractor/typedatabase.h
index 334e88a14..7981febf3 100644
--- a/sources/shiboken2/ApiExtractor/typedatabase.h
+++ b/sources/shiboken2/ApiExtractor/typedatabase.h
@@ -37,9 +37,9 @@
#include <QtCore/QRegularExpression>
#include <QtCore/QStringList>
+#include <QtCore/QVersionNumber>
QT_FORWARD_DECLARE_CLASS(QIODevice)
-QT_FORWARD_DECLARE_CLASS(QVersionNumber)
class ComplexTypeEntry;
class ContainerTypeEntry;
@@ -60,6 +60,18 @@ class ContainerTypeEntry;
class PrimitiveTypeEntry;
class TypeSystemTypeEntry;
+struct VersionRange
+{
+ bool isNull() const
+ {
+ return since.majorVersion() == 0 && since.minorVersion() == 0
+ && until.majorVersion() == 9999 && until.minorVersion() == 9999;
+ }
+
+ QVersionNumber since{0, 0};
+ QVersionNumber until{9999, 9999};
+};
+
class TypeDatabase
{
TypeDatabase();
@@ -84,6 +96,11 @@ public:
IncludeList extraIncludes(const QString &className) const;
+ const QByteArrayList &systemIncludes() const { return m_systemIncludes; }
+ void addSystemInclude(const QString &name);
+
+ void addInlineNamespaceLookups(const NamespaceTypeEntry *n);
+
PrimitiveTypeEntry *findPrimitiveType(const QString &name) const;
ComplexTypeEntry *findComplexType(const QString &name) const;
ObjectTypeEntry *findObjectType(const QString &name) const;
@@ -96,6 +113,8 @@ public:
QString defaultPackageName() const;
TypeEntry *findType(const QString &name) const;
+ TypeEntries findTypes(const QString &name) const;
+ TypeEntries findCppTypes(const QString &name) const;
const TypeEntryMultiMap &entries() const { return m_entries; }
const TypedefEntryMap &typedefEntries() const { return m_typedefEntries; }
@@ -118,6 +137,8 @@ public:
QString *reason = nullptr) const;
bool addType(TypeEntry *e, QString *errorMessage = nullptr);
+ ConstantValueTypeEntry *addConstantValueTypeEntry(const QString &value,
+ const TypeEntry *parent);
void addTypeSystemType(const TypeSystemTypeEntry *e);
FlagsTypeEntry *findFlagsType(const QString &name) const;
@@ -142,6 +163,7 @@ public:
bool addSuppressedWarning(const QString &warning, QString *errorMessage);
bool isSuppressedWarning(const QString &s) const;
+ bool isSuppressedWarning(const QStringRef &s) const;
static QString globalNamespaceClassName(const TypeEntry *te);
@@ -153,7 +175,7 @@ public:
static bool setApiVersion(const QString &package, const QString &version);
static void clearApiVersions();
- static bool checkApiVersion(const QString &package, const QVersionNumber &version);
+ static bool checkApiVersion(const QString &package, const VersionRange &vr);
bool hasDroppedTypeEntries() const { return !m_dropTypeEntries.isEmpty(); }
@@ -167,11 +189,15 @@ public:
void formatDebug(QDebug &d) const;
#endif
private:
- TypeEntryMultiMapConstIteratorRange findTypes(const QString &name) const;
+ TypeEntryMultiMapConstIteratorRange findTypeRange(const QString &name) const;
+ template <class Predicate>
+ TypeEntries findTypesHelper(const QString &name, Predicate pred) const;
TypeEntry *resolveTypeDefEntry(TypedefEntry *typedefEntry, QString *errorMessage);
+ template <class String>
+ bool isSuppressedWarningHelper(const String &s) const;
bool m_suppressWarnings = true;
- TypeEntryMultiMap m_entries;
+ TypeEntryMultiMap m_entries; // Contains duplicate entries (cf addInlineNamespaceLookups).
TypeEntryMap m_flagsEntries;
TypedefEntryMap m_typedefEntries;
TemplateEntryMap m_templates;
@@ -189,6 +215,7 @@ private:
QVector<TypeRejection> m_rejections;
QStringList m_dropTypeEntries;
+ QByteArrayList m_systemIncludes;
};
#ifndef QT_NO_DEBUG_STREAM