aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/apiextractorresult.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/ApiExtractor/apiextractorresult.h')
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractorresult.h33
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