/usr/include/apiextractor/typedatabase.h is in libapiextractor-dev 0.10.10-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | /*
* This file is part of the API Extractor project.
*
* Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
*
* Contact: PySide team <contact@pyside.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
*/
#ifndef TYPEDATABASE_H
#define TYPEDATABASE_H
#include <QStringList>
#include "typesystem.h"
APIEXTRACTOR_API void setTypeRevision(TypeEntry* typeEntry, int revision);
APIEXTRACTOR_API int getTypeRevision(const TypeEntry* typeEntry);
APIEXTRACTOR_API int getTypeIndex(const TypeEntry* typeEntry);
APIEXTRACTOR_API int getMaxTypeIndex();
class ContainerTypeEntry;
class PrimitiveTypeEntry;
class APIEXTRACTOR_API TypeDatabase
{
TypeDatabase();
TypeDatabase(const TypeDatabase&);
TypeDatabase& operator=(const TypeDatabase&);
public:
/**
* Return the type system instance.
* \param newInstance This parameter is useful just for unit testing, because singletons causes
* too many side effects on unit testing.
*/
static TypeDatabase* instance(bool newInstance = false);
static QString normalizedSignature(const char* signature);
QStringList requiredTargetImports() const;
void addRequiredTargetImport(const QString& moduleName);
QStringList typesystemPaths() const
{
return m_typesystemPaths;
}
void addTypesystemPath(const QString& typesystem_paths);
IncludeList extraIncludes(const QString& className) const;
PrimitiveTypeEntry* findPrimitiveType(const QString& name) const;
ComplexTypeEntry* findComplexType(const QString& name) const;
ObjectTypeEntry* findObjectType(const QString& name) const;
NamespaceTypeEntry* findNamespaceType(const QString& name) const;
ContainerTypeEntry* findContainerType(const QString& name) const;
FunctionTypeEntry* findFunctionType(const QString& name) const;
TypeEntry* findType(const QString& name) const;
QList<TypeEntry *> findTypes(const QString &name) const
{
return m_entries.value(name);
}
TypeEntryHash allEntries() const
{
return m_entries;
}
SingleTypeEntryHash entries() const;
PrimitiveTypeEntry* findTargetLangPrimitiveType(const QString& targetLangName) const;
QList<const PrimitiveTypeEntry*> primitiveTypes() const;
QList<const ContainerTypeEntry*> containerTypes() const;
void addRejection(const QString& className, const QString& functionName,
const QString& fieldName, const QString& enumName);
bool isClassRejected(const QString& className) const;
bool isFunctionRejected(const QString& className, const QString& functionName) const;
bool isFieldRejected(const QString& className, const QString& fieldName) const;
bool isEnumRejected(const QString& className, const QString& enumName) const;
void addType(TypeEntry* e)
{
m_entries[e->qualifiedCppName()].append(e);
}
SingleTypeEntryHash flagsEntries() const
{
return m_flagsEntries;
}
FlagsTypeEntry* findFlagsType(const QString& name) const;
void addFlagsType(FlagsTypeEntry* fte)
{
m_flagsEntries[fte->originalName()] = fte;
}
TemplateEntry* findTemplate(const QString& name) const
{
return m_templates[name];
}
void addTemplate(TemplateEntry* t)
{
m_templates[t->name()] = t;
}
AddedFunctionList globalUserFunctions() const
{
return m_globalUserFunctions;
}
void addGlobalUserFunctions(const AddedFunctionList& functions)
{
m_globalUserFunctions << functions;
}
AddedFunctionList findGlobalUserFunctions(const QString& name) const;
void addGlobalUserFunctionModifications(const FunctionModificationList& functionModifications)
{
m_functionMods << functionModifications;
}
void addGlobalUserFunctionModification(const FunctionModification& functionModification)
{
m_functionMods << functionModification;
}
FunctionModificationList functionModifications(const QString& signature) const;
void setSuppressWarnings(bool on)
{
m_suppressWarnings = on;
}
void addSuppressedWarning(const QString& s)
{
m_suppressedWarnings.append(s);
}
bool isSuppressedWarning(const QString& s) const;
void setRebuildClasses(const QStringList &cls)
{
m_rebuildClasses = cls;
}
static QString globalNamespaceClassName(const TypeEntry *te);
QString filename() const
{
return "typesystem.txt";
}
QString modifiedTypesystemFilepath(const QString& tsFile) const;
bool parseFile(const QString &filename, bool generate = true);
bool parseFile(QIODevice* device, bool generate = true);
APIEXTRACTOR_DEPRECATED(double apiVersion() const)
{
return m_apiVersion;
}
APIEXTRACTOR_DEPRECATED(void setApiVersion(double version))
{
m_apiVersion = version;
}
void setApiVersion(const QString& package, const QByteArray& version);
APIEXTRACTOR_DEPRECATED(bool supportedApiVersion(double version) const);
bool checkApiVersion(const QString& package, const QByteArray& version) const;
const QStringList& dropTypeEntries() const
{
return m_dropTypeEntries;
}
bool hasDroppedTypeEntries() const
{
return !m_dropTypeEntries.isEmpty();
}
bool shouldDropTypeEntry(const QString& fullTypeName) const;
void setDropTypeEntries(QStringList dropTypeEntries);
private:
bool m_suppressWarnings;
TypeEntryHash m_entries;
SingleTypeEntryHash m_flagsEntries;
TemplateEntryHash m_templates;
QStringList m_suppressedWarnings;
AddedFunctionList m_globalUserFunctions;
FunctionModificationList m_functionMods;
QStringList m_requiredTargetImports;
QStringList m_typesystemPaths;
QHash<QString, bool> m_parsedTypesystemFiles;
QList<TypeRejection> m_rejections;
QStringList m_rebuildClasses;
double m_apiVersion;
QStringList m_dropTypeEntries;
};
#endif
|