aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/generator/shiboken2/cppgenerator.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/cppgenerator.h')
-rw-r--r--sources/shiboken2/generator/shiboken2/cppgenerator.h81
1 files changed, 43 insertions, 38 deletions
diff --git a/sources/shiboken2/generator/shiboken2/cppgenerator.h b/sources/shiboken2/generator/shiboken2/cppgenerator.h
index aee1fb7d4..4e995d56f 100644
--- a/sources/shiboken2/generator/shiboken2/cppgenerator.h
+++ b/sources/shiboken2/generator/shiboken2/cppgenerator.h
@@ -43,53 +43,53 @@ public:
protected:
QString fileNameSuffix() const override;
- QString fileNameForContext(GeneratorContext &context) const override;
+ QString fileNameForContext(const GeneratorContext &context) const override;
QVector<AbstractMetaFunctionList> filterGroupedOperatorFunctions(const AbstractMetaClass *metaClass,
uint query);
- void generateClass(QTextStream &s, GeneratorContext &classContext) override;
+ void generateClass(QTextStream &s, const GeneratorContext &classContext) override;
bool finishGeneration() override;
private:
void writeInitFunc(QTextStream &declStr, QTextStream &callStr,
const Indentor &indent, const QString &initFunctionName,
const TypeEntry *enclosingEntry = nullptr);
- void writeCacheResetNative(QTextStream &s, const AbstractMetaClass *metaClass);
- void writeConstructorNative(QTextStream &s, const AbstractMetaFunction *func);
- void writeDestructorNative(QTextStream &s, const AbstractMetaClass *metaClass);
+ void writeCacheResetNative(QTextStream &s, const GeneratorContext &classContext);
+ void writeConstructorNative(QTextStream &s, const GeneratorContext &classContext,
+ const AbstractMetaFunction *func);
+ void writeDestructorNative(QTextStream &s, const GeneratorContext &classContext);
QString getVirtualFunctionReturnTypeName(const AbstractMetaFunction *func);
void writeVirtualMethodNative(QTextStream &s, const AbstractMetaFunction *func, int cacheIndex);
- void writeMetaObjectMethod(QTextStream &s, const AbstractMetaClass *metaClass);
- void writeMetaCast(QTextStream &s, const AbstractMetaClass *metaClass);
+ void writeMetaObjectMethod(QTextStream &s, const GeneratorContext &classContext);
+ void writeMetaCast(QTextStream &s, const GeneratorContext &classContext);
void writeEnumConverterFunctions(QTextStream &s, const TypeEntry *enumType);
void writeEnumConverterFunctions(QTextStream &s, const AbstractMetaEnum *metaEnum);
void writeConverterFunctions(QTextStream &s, const AbstractMetaClass *metaClass,
- GeneratorContext &classContext);
+ const GeneratorContext &classContext);
void writeCustomConverterFunctions(QTextStream &s, const CustomConversion *customConversion);
void writeConverterRegister(QTextStream &s, const AbstractMetaClass *metaClass,
- GeneratorContext &classContext);
+ const GeneratorContext &classContext);
void writeCustomConverterRegister(QTextStream &s, const CustomConversion *customConversion, const QString &converterVar);
void writeContainerConverterFunctions(QTextStream &s, const AbstractMetaType *containerType);
void writeMethodWrapperPreamble(QTextStream &s, OverloadData &overloadData,
- GeneratorContext &context);
+ const GeneratorContext &context);
void writeConstructorWrapper(QTextStream &s, const AbstractMetaFunctionList &overloads,
- GeneratorContext &classContext);
+ const GeneratorContext &classContext);
void writeMethodWrapper(QTextStream &s, const AbstractMetaFunctionList &overloads,
- GeneratorContext &classContext);
+ const GeneratorContext &classContext);
void writeArgumentsInitializer(QTextStream &s, OverloadData &overloadData);
- void writeCppSelfAssigment(QTextStream &s, const GeneratorContext &context,
- const QString &className, bool cppSelfAsReference,
- bool useWrapperClass);
+ void writeCppSelfConversion(QTextStream &s, const GeneratorContext &context,
+ const QString &className, bool useWrapperClass);
void writeCppSelfDefinition(QTextStream &s,
const AbstractMetaFunction *func,
- GeneratorContext &context,
+ const GeneratorContext &context,
bool hasStaticOverload = false);
void writeCppSelfDefinition(QTextStream &s,
- GeneratorContext &context,
+ const GeneratorContext &context,
bool hasStaticOverload = false,
bool cppSelfAsReference = false);
@@ -106,13 +106,15 @@ private:
void writeTypeDiscoveryFunction(QTextStream &s, const AbstractMetaClass *metaClass);
- static void writeSetattroDefinition(QTextStream &s, const AbstractMetaClass *metaClass);
+ void writeSetattroDefinition(QTextStream &s, const AbstractMetaClass *metaClass) const;
void writeSetattroDefaultReturn(QTextStream &s) const;
- void writeSmartPointerSetattroFunction(QTextStream &s, GeneratorContext &context);
- void writeSetattroFunction(QTextStream &s, AttroCheck attroCheck, GeneratorContext &context);
+ void writeSmartPointerSetattroFunction(QTextStream &s, const GeneratorContext &context);
+ void writeSetattroFunction(QTextStream &s, AttroCheck attroCheck,
+ const GeneratorContext &context);
static void writeGetattroDefinition(QTextStream &s, const AbstractMetaClass *metaClass);
- void writeSmartPointerGetattroFunction(QTextStream &s, GeneratorContext &context);
- void writeGetattroFunction(QTextStream &s, AttroCheck attroCheck, GeneratorContext &context);
+ void writeSmartPointerGetattroFunction(QTextStream &s, const GeneratorContext &context);
+ void writeGetattroFunction(QTextStream &s, AttroCheck attroCheck,
+ const GeneratorContext &context);
QString writeSmartPointerGetterCast();
QString qObjectGetAttroFunction() const;
@@ -183,13 +185,13 @@ private:
/// Writes calls to all the possible method/function overloads.
void writeFunctionCalls(QTextStream &s,
const OverloadData &overloadData,
- GeneratorContext &context);
+ const GeneratorContext &context);
/// Writes the call to a single function usually from a collection of overloads.
void writeSingleFunctionCall(QTextStream &s,
const OverloadData &overloadData,
const AbstractMetaFunction *func,
- GeneratorContext &context);
+ const GeneratorContext &context);
/// Returns the name of a C++ to Python conversion function.
static QString cppToPythonFunctionName(const QString &sourceTypeName, QString targetTypeName = QString());
@@ -242,48 +244,51 @@ private:
/// Returns a string containing the name of an argument for the given function and argument index.
QString argumentNameFromIndex(const AbstractMetaFunction *func, int argIndex, const AbstractMetaClass **wrappedClass);
void writeMethodCall(QTextStream &s, const AbstractMetaFunction *func,
- GeneratorContext &context, int maxArgs = 0);
+ const GeneratorContext &context, int maxArgs = 0);
- QString getInitFunctionName(GeneratorContext &context) const;
+ QString getInitFunctionName(const GeneratorContext &context) const;
QString getSimpleClassInitFunctionName(const AbstractMetaClass *metaClass) const;
+ void writeSignatureStrings(QTextStream &s, QTextStream &signatureStream,
+ const QString &arrayName,
+ const char *comment) const;
void writeClassRegister(QTextStream &s,
const AbstractMetaClass *metaClass,
- GeneratorContext &classContext,
+ const GeneratorContext &classContext,
QTextStream &signatureStream);
void writeClassDefinition(QTextStream &s,
const AbstractMetaClass *metaClass,
- GeneratorContext &classContext);
+ const GeneratorContext &classContext);
void writeMethodDefinitionEntry(QTextStream &s, const AbstractMetaFunctionList &overloads);
void writeMethodDefinition(QTextStream &s, const AbstractMetaFunctionList &overloads);
void writeSignatureInfo(QTextStream &s, const AbstractMetaFunctionList &overloads);
/// Writes the implementation of all methods part of python sequence protocol
void writeSequenceMethods(QTextStream &s,
const AbstractMetaClass *metaClass,
- GeneratorContext &context);
+ const GeneratorContext &context);
void writeTypeAsSequenceDefinition(QTextStream &s, const AbstractMetaClass *metaClass);
/// Writes the PyMappingMethods structure for types that supports the python mapping protocol.
void writeTypeAsMappingDefinition(QTextStream &s, const AbstractMetaClass *metaClass);
void writeMappingMethods(QTextStream &s,
const AbstractMetaClass *metaClass,
- GeneratorContext &context);
+ const GeneratorContext &context);
void writeTypeAsNumberDefinition(QTextStream &s, const AbstractMetaClass *metaClass);
void writeTpTraverseFunction(QTextStream &s, const AbstractMetaClass *metaClass);
void writeTpClearFunction(QTextStream &s, const AbstractMetaClass *metaClass);
- void writeCopyFunction(QTextStream &s, GeneratorContext &context);
+ void writeCopyFunction(QTextStream &s, const GeneratorContext &context);
void writeGetterFunction(QTextStream &s,
const AbstractMetaField *metaField,
- GeneratorContext &context);
+ const GeneratorContext &context);
void writeSetterFunction(QTextStream &s,
const AbstractMetaField *metaField,
- GeneratorContext &context);
+ const GeneratorContext &context);
- void writeRichCompareFunction(QTextStream &s, GeneratorContext &context);
+ void writeRichCompareFunction(QTextStream &s, const GeneratorContext &context);
void writeEnumsInitialization(QTextStream &s, AbstractMetaEnumList &enums);
void writeEnumInitialization(QTextStream &s, const AbstractMetaEnum *metaEnum);
@@ -314,7 +319,7 @@ private:
void writeParentChildManagement(QTextStream &s, const AbstractMetaFunction *func, bool userHeuristicForReturn);
bool writeParentChildManagement(QTextStream &s, const AbstractMetaFunction *func, int argIndex, bool userHeuristicPolicy);
void writeReturnValueHeuristics(QTextStream &s, const AbstractMetaFunction *func);
- void writeInitQtMetaTypeFunctionBody(QTextStream &s, GeneratorContext &context) const;
+ void writeInitQtMetaTypeFunctionBody(QTextStream &s, const GeneratorContext &context) const;
/**
* Returns the multiple inheritance initializer function for the given class.
@@ -339,14 +344,14 @@ private:
/// Returns true if generator should produce getters and setters for the given class.
bool shouldGenerateGetSetList(const AbstractMetaClass *metaClass);
- void writeHashFunction(QTextStream &s, GeneratorContext &context);
+ void writeHashFunction(QTextStream &s, const GeneratorContext &context);
/// Write default implementations for sequence protocol
- void writeStdListWrapperMethods(QTextStream &s, GeneratorContext &context);
+ void writeDefaultSequenceMethods(QTextStream &s, const GeneratorContext &context);
/// Helper function for writeStdListWrapperMethods.
void writeIndexError(QTextStream &s, const QString &errorMsg);
- QString writeReprFunction(QTextStream &s, GeneratorContext &context, uint indirections);
+ QString writeReprFunction(QTextStream &s, const GeneratorContext &context, uint indirections);
const AbstractMetaFunction *boolCast(const AbstractMetaClass *metaClass) const;
bool hasBoolCast(const AbstractMetaClass *metaClass) const