diff options
Diffstat (limited to 'sources/shiboken6/ApiExtractor/apiextractorresult.h')
-rw-r--r-- | sources/shiboken6/ApiExtractor/apiextractorresult.h | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/sources/shiboken6/ApiExtractor/apiextractorresult.h b/sources/shiboken6/ApiExtractor/apiextractorresult.h index 8dd3383bf..88a2093f1 100644 --- a/sources/shiboken6/ApiExtractor/apiextractorresult.h +++ b/sources/shiboken6/ApiExtractor/apiextractorresult.h @@ -4,14 +4,13 @@ #ifndef APIEXTRACTORRESULT_H #define APIEXTRACTORRESULT_H -#include "abstractmetalang.h" #include "apiextractorflags.h" -#include "abstractmetaenum.h" #include "abstractmetatype.h" +#include "abstractmetalang_typedefs.h" #include "typesystem_typedefs.h" #include <QtCore/QHash> -#include <QtCore/QExplicitlySharedDataPointer> +#include <QtCore/QMultiHash> #include <optional> @@ -19,8 +18,8 @@ class ApiExtractorResultData; struct InstantiatedSmartPointer { - const AbstractMetaClass *smartPointer = nullptr; // Template class - const AbstractMetaClass *specialized = nullptr; // Specialized for type + AbstractMetaClassCPtr smartPointer; // Template class + AbstractMetaClassCPtr specialized; // Specialized for type AbstractMetaType type; }; @@ -31,11 +30,10 @@ class ApiExtractorResult { public: ApiExtractorResult(); - explicit ApiExtractorResult(ApiExtractorResultData *data); ApiExtractorResult(const ApiExtractorResult &); ApiExtractorResult &operator=(const ApiExtractorResult &); - ApiExtractorResult(ApiExtractorResult &&); - ApiExtractorResult &operator=(ApiExtractorResult &&); + ApiExtractorResult(ApiExtractorResult &&) noexcept; + ApiExtractorResult &operator=(ApiExtractorResult &&) noexcept; ~ApiExtractorResult(); const AbstractMetaEnumList &globalEnums() const; @@ -46,22 +44,35 @@ public: const AbstractMetaTypeList &instantiatedContainers() const; const InstantiatedSmartPointers &instantiatedSmartPointers() const; + const QMultiHash<QString, QString> &typedefTargetToName() const; + // Query functions for the generators - std::optional<AbstractMetaEnum> findAbstractMetaEnum(const TypeEntry* typeEntry) const; + std::optional<AbstractMetaEnum> + findAbstractMetaEnum(TypeEntryCPtr typeEntry) const; /// Retrieves a list of constructors used in implicit conversions /// available on the given type. The TypeEntry must be a value-type /// or else it will return an empty list. /// \param type a TypeEntry that is expected to be a value-type /// \return a list of constructors that could be used as implicit converters - AbstractMetaFunctionCList implicitConversions(const TypeEntry *type) const; + AbstractMetaFunctionCList implicitConversions(const TypeEntryCPtr &type) const; AbstractMetaFunctionCList implicitConversions(const AbstractMetaType &metaType) const; ApiExtractorFlags flags() const; void setFlags(ApiExtractorFlags f); private: - QExplicitlySharedDataPointer<ApiExtractorResultData> d; + AbstractMetaClassCList m_metaClasses; + AbstractMetaClassCList m_smartPointers; + AbstractMetaFunctionCList m_globalFunctions; + AbstractMetaEnumList m_globalEnums; + AbstractMetaTypeList m_instantiatedContainers; + InstantiatedSmartPointers m_instantiatedSmartPointers; + QHash<TypeEntryCPtr, AbstractMetaEnum> m_enums; + QMultiHash<QString, QString> m_typedefTargetToName; + ApiExtractorFlags m_flags; + + friend class ApiExtractor; }; #endif // APIEXTRACTORRESULT_H |