diff options
Diffstat (limited to 'sources/shiboken6/generator/shiboken/cppgenerator.h')
-rw-r--r-- | sources/shiboken6/generator/shiboken/cppgenerator.h | 297 |
1 files changed, 154 insertions, 143 deletions
diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.h b/sources/shiboken6/generator/shiboken/cppgenerator.h index 0da7df719..43bdd2623 100644 --- a/sources/shiboken6/generator/shiboken/cppgenerator.h +++ b/sources/shiboken6/generator/shiboken/cppgenerator.h @@ -46,85 +46,89 @@ protected: QString fileNameForContext(const GeneratorContext &context) const override; static QVector<AbstractMetaFunctionList> filterGroupedOperatorFunctions(const AbstractMetaClass *metaClass, uint query); - void generateClass(QTextStream &s, const GeneratorContext &classContext) override; + void generateClass(TextStream &s, const GeneratorContext &classContext) override; bool finishGeneration() override; private: - void writeInitFunc(QTextStream &declStr, QTextStream &callStr, - const Indentor &indent, const QString &initFunctionName, + void writeInitFunc(TextStream &declStr, TextStream &callStr, + const QString &initFunctionName, const TypeEntry *enclosingEntry = nullptr) const; - void writeCacheResetNative(QTextStream &s, const GeneratorContext &classContext); - void writeConstructorNative(QTextStream &s, const GeneratorContext &classContext, - const AbstractMetaFunction *func); - void writeDestructorNative(QTextStream &s, const GeneratorContext &classContext); + void writeCacheResetNative(TextStream &s, const GeneratorContext &classContext) const; + void writeConstructorNative(TextStream &s, const GeneratorContext &classContext, + const AbstractMetaFunction *func) const; + void writeDestructorNative(TextStream &s, const GeneratorContext &classContext) const; QString getVirtualFunctionReturnTypeName(const AbstractMetaFunction *func) const; - void writeVirtualMethodNative(QTextStream &s, const AbstractMetaFunction *func, int cacheIndex); - void writeVirtualMethodCppCall(QTextStream &s, const AbstractMetaFunction *func, + void writeVirtualMethodNative(TextStream &s, const AbstractMetaFunction *func, + int cacheIndex) const; + void writeVirtualMethodCppCall(TextStream &s, const AbstractMetaFunction *func, const QString &funcName, const CodeSnipList &snips, const AbstractMetaArgument *lastArg, const TypeEntry *retType, const QString &returnStatement) const; - QString virtualMethodReturn(QTextStream &s, + QString virtualMethodReturn(TextStream &s, const AbstractMetaFunction *func, const FunctionModificationList &functionModifications) const; - 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, - const GeneratorContext &classContext); - void writeCustomConverterFunctions(QTextStream &s, const CustomConversion *customConversion); - void writeConverterRegister(QTextStream &s, const AbstractMetaClass *metaClass, - const GeneratorContext &classContext); - void writeCustomConverterRegister(QTextStream &s, const CustomConversion *customConversion, - const QString &converterVar); - - void writeContainerConverterFunctions(QTextStream &s, const AbstractMetaType &containerType); - - void writeSmartPointerConverterFunctions(QTextStream &s, const AbstractMetaType &smartPointerType); - - void writeMethodWrapperPreamble(QTextStream &s, OverloadData &overloadData, - const GeneratorContext &context); - void writeConstructorWrapper(QTextStream &s, const AbstractMetaFunctionList &overloads, - const GeneratorContext &classContext); - void writeMethodWrapper(QTextStream &s, const AbstractMetaFunctionList &overloads, - const GeneratorContext &classContext); - void writeArgumentsInitializer(QTextStream &s, OverloadData &overloadData); - void writeCppSelfConversion(QTextStream &s, const GeneratorContext &context, + void writeMetaObjectMethod(TextStream &s, const GeneratorContext &classContext) const; + void writeMetaCast(TextStream &s, const GeneratorContext &classContext) const; + + void writeEnumConverterFunctions(TextStream &s, const TypeEntry *enumType) const; + void writeEnumConverterFunctions(TextStream &s, const AbstractMetaEnum &metaEnum) const; + void writeConverterFunctions(TextStream &s, const AbstractMetaClass *metaClass, + const GeneratorContext &classContext) const; + void writeCustomConverterFunctions(TextStream &s, + const CustomConversion *customConversion) const; + void writeConverterRegister(TextStream &s, const AbstractMetaClass *metaClass, + const GeneratorContext &classContext) const; + void writeCustomConverterRegister(TextStream &s, const CustomConversion *customConversion, + const QString &converterVar) const; + + void writeContainerConverterFunctions(TextStream &s, + const AbstractMetaType &containerType) const; + + void writeSmartPointerConverterFunctions(TextStream &s, + const AbstractMetaType &smartPointerType) const; + + void writeMethodWrapperPreamble(TextStream &s, OverloadData &overloadData, + const GeneratorContext &context) const; + void writeConstructorWrapper(TextStream &s, const AbstractMetaFunctionList &overloads, + const GeneratorContext &classContext) const; + void writeMethodWrapper(TextStream &s, const AbstractMetaFunctionList &overloads, + const GeneratorContext &classContext) const; + void writeArgumentsInitializer(TextStream &s, OverloadData &overloadData) const; + void writeCppSelfConversion(TextStream &s, const GeneratorContext &context, const QString &className, bool useWrapperClass) const; - void writeCppSelfDefinition(QTextStream &s, + void writeCppSelfDefinition(TextStream &s, const AbstractMetaFunction *func, const GeneratorContext &context, - bool hasStaticOverload = false); - void writeCppSelfDefinition(QTextStream &s, + bool hasStaticOverload = false) const; + void writeCppSelfDefinition(TextStream &s, const GeneratorContext &context, bool hasStaticOverload = false, - bool cppSelfAsReference = false); + bool cppSelfAsReference = false) const; - void writeErrorSection(QTextStream &s, OverloadData &overloadData); - void writeFunctionReturnErrorCheckSection(QTextStream &s, bool hasReturnValue = true); + void writeErrorSection(TextStream &s, OverloadData &overloadData) const; + static void writeFunctionReturnErrorCheckSection(TextStream &s, bool hasReturnValue = true); /// Writes the check section for the validity of wrapped C++ objects. - void writeInvalidPyObjectCheck(QTextStream &s, const QString &pyObj); + static void writeInvalidPyObjectCheck(TextStream &s, const QString &pyObj); - void writeTypeCheck(QTextStream &s, AbstractMetaType argType, const QString &argumentName, + void writeTypeCheck(TextStream &s, AbstractMetaType argType, const QString &argumentName, bool isNumber = false, const QString &customType = QString(), bool rejectNull = false) const; - void writeTypeCheck(QTextStream& s, const OverloadData *overloadData, + void writeTypeCheck(TextStream& s, const OverloadData *overloadData, QString argumentName) const; - void writeTypeDiscoveryFunction(QTextStream &s, const AbstractMetaClass *metaClass); - - void writeSetattroDefinition(QTextStream &s, const AbstractMetaClass *metaClass) const; - void writeSetattroDefaultReturn(QTextStream &s) const; - 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, const GeneratorContext &context); - void writeGetattroFunction(QTextStream &s, AttroCheck attroCheck, - const GeneratorContext &context); + static void writeTypeDiscoveryFunction(TextStream &s, const AbstractMetaClass *metaClass); + + void writeSetattroDefinition(TextStream &s, const AbstractMetaClass *metaClass) const; + static void writeSetattroDefaultReturn(TextStream &s); + void writeSmartPointerSetattroFunction(TextStream &s, const GeneratorContext &context) const; + void writeSetattroFunction(TextStream &s, AttroCheck attroCheck, + const GeneratorContext &context) const; + static void writeGetattroDefinition(TextStream &s, const AbstractMetaClass *metaClass); + static void writeSmartPointerGetattroFunction(TextStream &s, const GeneratorContext &context); + void writeGetattroFunction(TextStream &s, AttroCheck attroCheck, + const GeneratorContext &context) const; static QString writeSmartPointerGetterCast(); QString qObjectGetAttroFunction() const; @@ -140,11 +144,11 @@ private: * \param defaultValue an optional default value to be used instead of the conversion result * \param castArgumentAsUnused if true the converted argument is cast as unused to avoid compiler warnings */ - void writeArgumentConversion(QTextStream &s, const AbstractMetaType &argType, + void writeArgumentConversion(TextStream &s, const AbstractMetaType &argType, const QString &argName, const QString &pyArgName, const AbstractMetaClass *context = nullptr, const QString &defaultValue = QString(), - bool castArgumentAsUnused = false); + bool castArgumentAsUnused = false) const; /** * Returns the AbstractMetaType for a function argument. @@ -160,17 +164,17 @@ private: std::optional<AbstractMetaType> getArgumentType(const AbstractMetaFunction *func, int argPos) const; - void writePythonToCppTypeConversion(QTextStream &s, + void writePythonToCppTypeConversion(TextStream &s, const AbstractMetaType &type, const QString &pyIn, const QString &cppOut, const AbstractMetaClass *context = nullptr, - const QString &defaultValue = QString()); + const QString &defaultValue = QString()) const; /// Writes the conversion rule for arguments of regular and virtual methods. - void writeConversionRule(QTextStream &s, const AbstractMetaFunction *func, TypeSystem::Language language) const; + void writeConversionRule(TextStream &s, const AbstractMetaFunction *func, TypeSystem::Language language) const; /// Writes the conversion rule for the return value of a method. - void writeConversionRule(QTextStream &s, const AbstractMetaFunction *func, TypeSystem::Language language, + void writeConversionRule(TextStream &s, const AbstractMetaFunction *func, TypeSystem::Language language, const QString &outputVar) const; /** @@ -182,7 +186,7 @@ private: * \param thereIsReturnValue indicates if the return type of any of the other overloads * for this function is different from 'void' */ - void writeNoneReturn(QTextStream &s, const AbstractMetaFunction *func, bool thereIsReturnValue) const; + static void writeNoneReturn(TextStream &s, const AbstractMetaFunction *func, bool thereIsReturnValue); /** * Writes the Python function wrapper overload decisor that selects which C++ @@ -190,20 +194,21 @@ private: * \param s text stream to write * \param overloadData the overload data describing all the possible overloads for the function/method */ - void writeOverloadedFunctionDecisor(QTextStream &s, const OverloadData &overloadData); + void writeOverloadedFunctionDecisor(TextStream &s, const OverloadData &overloadData) const; /// Recursive auxiliar method to the other writeOverloadedFunctionDecisor. - void writeOverloadedFunctionDecisorEngine(QTextStream &s, const OverloadData *parentOverloadData); + void writeOverloadedFunctionDecisorEngine(TextStream &s, + const OverloadData *parentOverloadData) const; /// Writes calls to all the possible method/function overloads. - void writeFunctionCalls(QTextStream &s, + void writeFunctionCalls(TextStream &s, const OverloadData &overloadData, - const GeneratorContext &context); + const GeneratorContext &context) const; /// Writes the call to a single function usually from a collection of overloads. - void writeSingleFunctionCall(QTextStream &s, + void writeSingleFunctionCall(TextStream &s, const OverloadData &overloadData, const AbstractMetaFunction *func, - const GeneratorContext &context); + const GeneratorContext &context) const; /// Returns the name of a C++ to Python conversion function. static QString cppToPythonFunctionName(const QString &sourceTypeName, QString targetTypeName = QString()); @@ -219,137 +224,142 @@ private: static QString convertibleToCppFunctionName(const CustomConversion::TargetToNativeConversion *toNative, const TypeEntry *targetType); /// Writes a C++ to Python conversion function. - void writeCppToPythonFunction(QTextStream &s, const QString &code, const QString &sourceTypeName, + void writeCppToPythonFunction(TextStream &s, const QString &code, const QString &sourceTypeName, QString targetTypeName = QString()) const; - void writeCppToPythonFunction(QTextStream &s, const CustomConversion *customConversion) const; - void writeCppToPythonFunction(QTextStream &s, const AbstractMetaType &containerType) const; + void writeCppToPythonFunction(TextStream &s, const CustomConversion *customConversion) const; + void writeCppToPythonFunction(TextStream &s, const AbstractMetaType &containerType) const; /// Writes a Python to C++ conversion function. - void writePythonToCppFunction(QTextStream &s, const QString &code, const QString &sourceTypeName, + void writePythonToCppFunction(TextStream &s, const QString &code, const QString &sourceTypeName, const QString &targetTypeName) const; /// Writes a Python to C++ convertible check function. - void writeIsPythonConvertibleToCppFunction(QTextStream &s, + void writeIsPythonConvertibleToCppFunction(TextStream &s, const QString &sourceTypeName, const QString &targetTypeName, const QString &condition, QString pythonToCppFuncName = QString(), - bool acceptNoneAsCppNull = false); + bool acceptNoneAsCppNull = false) const; /// Writes a pair of Python to C++ conversion and check functions. - void writePythonToCppConversionFunctions(QTextStream &s, + void writePythonToCppConversionFunctions(TextStream &s, const AbstractMetaType &sourceType, const AbstractMetaType &targetType, QString typeCheck = QString(), QString conversion = QString(), - const QString &preConversion = QString()); + const QString &preConversion = QString()) const; /// Writes a pair of Python to C++ conversion and check functions for implicit conversions. - void writePythonToCppConversionFunctions(QTextStream &s, + void writePythonToCppConversionFunctions(TextStream &s, const CustomConversion::TargetToNativeConversion *toNative, - const TypeEntry *targetType); + const TypeEntry *targetType) const; /// Writes a pair of Python to C++ conversion and check functions for instantiated container types. - void writePythonToCppConversionFunctions(QTextStream &s, const AbstractMetaType &containerType); + void writePythonToCppConversionFunctions(TextStream &s, + const AbstractMetaType &containerType) const; - void writeAddPythonToCppConversion(QTextStream &s, const QString &converterVar, const QString &pythonToCppFunc, const QString &isConvertibleFunc); + void writeAddPythonToCppConversion(TextStream &s, const QString &converterVar, + const QString &pythonToCppFunc, + const QString &isConvertibleFunc) const; - void writeNamedArgumentResolution(QTextStream &s, const AbstractMetaFunction *func, - bool usePyArgs, const OverloadData &overloadData); + void writeNamedArgumentResolution(TextStream &s, const AbstractMetaFunction *func, + bool usePyArgs, const OverloadData &overloadData) const; /// 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, QString *errorMessage = nullptr) const; - void writeMethodCall(QTextStream &s, const AbstractMetaFunction *func, - const GeneratorContext &context, int maxArgs = 0); + void writeMethodCall(TextStream &s, const AbstractMetaFunction *func, + const GeneratorContext &context, int maxArgs = 0) const; QString getInitFunctionName(const GeneratorContext &context) const; QString getSimpleClassInitFunctionName(const AbstractMetaClass *metaClass) const; - void writeSignatureStrings(QTextStream &s, QTextStream &signatureStream, + void writeSignatureStrings(TextStream &s, const QString &signatures, const QString &arrayName, const char *comment) const; - void writeClassRegister(QTextStream &s, + void writeClassRegister(TextStream &s, const AbstractMetaClass *metaClass, const GeneratorContext &classContext, - QTextStream &signatureStream); - void writeClassDefinition(QTextStream &s, + const QString &signatures) const; + void writeClassDefinition(TextStream &s, const AbstractMetaClass *metaClass, const GeneratorContext &classContext); - void writeMethodDefinitionEntry(QTextStream &s, const AbstractMetaFunctionList &overloads) const; - void writeMethodDefinition(QTextStream &s, const AbstractMetaFunctionList &overloads) const; - void writeSignatureInfo(QTextStream &s, const AbstractMetaFunctionList &overloads) const; + void writeMethodDefinitionEntry(TextStream &s, const AbstractMetaFunctionList &overloads) const; + void writeMethodDefinition(TextStream &s, const AbstractMetaFunctionList &overloads) const; + void writeSignatureInfo(TextStream &s, const AbstractMetaFunctionList &overloads) const; /// Writes the implementation of all methods part of python sequence protocol - void writeSequenceMethods(QTextStream &s, + void writeSequenceMethods(TextStream &s, const AbstractMetaClass *metaClass, - const GeneratorContext &context); - void writeTypeAsSequenceDefinition(QTextStream &s, const AbstractMetaClass *metaClass) const; + const GeneratorContext &context) const; + void writeTypeAsSequenceDefinition(TextStream &s, const AbstractMetaClass *metaClass) const; /// Writes the PyMappingMethods structure for types that supports the python mapping protocol. - void writeTypeAsMappingDefinition(QTextStream &s, const AbstractMetaClass *metaClass) const; - void writeMappingMethods(QTextStream &s, + void writeTypeAsMappingDefinition(TextStream &s, const AbstractMetaClass *metaClass) const; + void writeMappingMethods(TextStream &s, const AbstractMetaClass *metaClass, - const GeneratorContext &context); + const GeneratorContext &context) const; - void writeTypeAsNumberDefinition(QTextStream &s, const AbstractMetaClass *metaClass) const; + void writeTypeAsNumberDefinition(TextStream &s, const AbstractMetaClass *metaClass) const; - void writeTpTraverseFunction(QTextStream &s, const AbstractMetaClass *metaClass) const; - void writeTpClearFunction(QTextStream &s, const AbstractMetaClass *metaClass) const; + void writeTpTraverseFunction(TextStream &s, const AbstractMetaClass *metaClass) const; + void writeTpClearFunction(TextStream &s, const AbstractMetaClass *metaClass) const; - void writeCopyFunction(QTextStream &s, const GeneratorContext &context); + void writeCopyFunction(TextStream &s, const GeneratorContext &context) const; - void writeGetterFunction(QTextStream &s, + void writeGetterFunction(TextStream &s, const AbstractMetaField &metaField, - const GeneratorContext &context); - void writeGetterFunction(QTextStream &s, + const GeneratorContext &context) const; + void writeGetterFunction(TextStream &s, const QPropertySpec &property, - const GeneratorContext &context); - void writeSetterFunctionPreamble(QTextStream &s, + const GeneratorContext &context) const; + void writeSetterFunctionPreamble(TextStream &s, const QString &name, const QString &funcName, const AbstractMetaType &type, - const GeneratorContext &context); - void writeSetterFunction(QTextStream &s, + const GeneratorContext &context) const; + void writeSetterFunction(TextStream &s, const AbstractMetaField &metaField, - const GeneratorContext &context); - void writeSetterFunction(QTextStream &s, + const GeneratorContext &context) const; + void writeSetterFunction(TextStream &s, const QPropertySpec &property, - const GeneratorContext &context); + const GeneratorContext &context) const; - void writeRichCompareFunction(QTextStream &s, const GeneratorContext &context); + void writeRichCompareFunction(TextStream &s, const GeneratorContext &context) const; - void writeEnumsInitialization(QTextStream &s, AbstractMetaEnumList &enums); - void writeEnumInitialization(QTextStream &s, const AbstractMetaEnum &metaEnum); + void writeEnumsInitialization(TextStream &s, AbstractMetaEnumList &enums) const; + void writeEnumInitialization(TextStream &s, const AbstractMetaEnum &metaEnum) const; - void writeSignalInitialization(QTextStream &s, const AbstractMetaClass *metaClass); + static void writeSignalInitialization(TextStream &s, const AbstractMetaClass *metaClass); - void writeFlagsMethods(QTextStream &s, const AbstractMetaEnum &cppEnum) const; - void writeFlagsToLong(QTextStream &s, const AbstractMetaEnum &cppEnum) const; - void writeFlagsNonZero(QTextStream &s, const AbstractMetaEnum &cppEnum) const; - void writeFlagsNumberMethodsDefinition(QTextStream &s, const AbstractMetaEnum &cppEnum) const; - void writeFlagsNumberMethodsDefinitions(QTextStream &s, const AbstractMetaEnumList &enums) const; - void writeFlagsBinaryOperator(QTextStream &s, const AbstractMetaEnum &cppEnum, + void writeFlagsMethods(TextStream &s, const AbstractMetaEnum &cppEnum) const; + void writeFlagsToLong(TextStream &s, const AbstractMetaEnum &cppEnum) const; + void writeFlagsNonZero(TextStream &s, const AbstractMetaEnum &cppEnum) const; + void writeFlagsNumberMethodsDefinition(TextStream &s, const AbstractMetaEnum &cppEnum) const; + void writeFlagsNumberMethodsDefinitions(TextStream &s, const AbstractMetaEnumList &enums) const; + void writeFlagsBinaryOperator(TextStream &s, const AbstractMetaEnum &cppEnum, const QString &pyOpName, const QString &cppOpName) const; - void writeFlagsUnaryOperator(QTextStream &s, const AbstractMetaEnum &cppEnum, + void writeFlagsUnaryOperator(TextStream &s, const AbstractMetaEnum &cppEnum, const QString &pyOpName, const QString &cppOpName, bool boolResult = false) const; /// Writes the function that registers the multiple inheritance information for the classes that need it. - void writeMultipleInheritanceInitializerFunction(QTextStream &s, const AbstractMetaClass *metaClass); + static void writeMultipleInheritanceInitializerFunction(TextStream &s, const AbstractMetaClass *metaClass); /// Writes the implementation of special cast functions, used when we need to cast a class with multiple inheritance. - void writeSpecialCastFunction(QTextStream &s, const AbstractMetaClass *metaClass); - - void writePrimitiveConverterInitialization(QTextStream &s, const CustomConversion *customConversion); - void writeEnumConverterInitialization(QTextStream &s, const TypeEntry *enumType); - void writeEnumConverterInitialization(QTextStream &s, const AbstractMetaEnum &metaEnum); - void writeContainerConverterInitialization(QTextStream &s, const AbstractMetaType &type); - void writeSmartPointerConverterInitialization(QTextStream &s, const AbstractMetaType &ype); - void writeExtendedConverterInitialization(QTextStream &s, const TypeEntry *externalType, const QVector<const AbstractMetaClass *>& conversions); - - void writeParentChildManagement(QTextStream &s, const AbstractMetaFunction *func, bool userHeuristicForReturn) const; - bool writeParentChildManagement(QTextStream &s, const AbstractMetaFunction *func, int argIndex, bool userHeuristicPolicy) const; - void writeReturnValueHeuristics(QTextStream &s, const AbstractMetaFunction *func) const; - void writeInitQtMetaTypeFunctionBody(QTextStream &s, const GeneratorContext &context) const; + static void writeSpecialCastFunction(TextStream &s, const AbstractMetaClass *metaClass); + + void writePrimitiveConverterInitialization(TextStream &s, + const CustomConversion *customConversion) const; + void writeEnumConverterInitialization(TextStream &s, const TypeEntry *enumType) const; + void writeEnumConverterInitialization(TextStream &s, const AbstractMetaEnum &metaEnum) const; + void writeContainerConverterInitialization(TextStream &s, const AbstractMetaType &type) const; + void writeSmartPointerConverterInitialization(TextStream &s, const AbstractMetaType &ype) const; + void writeExtendedConverterInitialization(TextStream &s, const TypeEntry *externalType, + const QVector<const AbstractMetaClass *>& conversions) const; + + void writeParentChildManagement(TextStream &s, const AbstractMetaFunction *func, bool userHeuristicForReturn) const; + bool writeParentChildManagement(TextStream &s, const AbstractMetaFunction *func, int argIndex, bool userHeuristicPolicy) const; + void writeReturnValueHeuristics(TextStream &s, const AbstractMetaFunction *func) const; + void writeInitQtMetaTypeFunctionBody(TextStream &s, const GeneratorContext &context) const; /** * Returns the multiple inheritance initializer function for the given class. @@ -360,13 +370,13 @@ private: static QString multipleInheritanceInitializerFunctionName(const AbstractMetaClass *metaClass); /// Returns a list of all classes to which the given class could be cast. - QStringList getAncestorMultipleInheritance(const AbstractMetaClass *metaClass); + static QStringList getAncestorMultipleInheritance(const AbstractMetaClass *metaClass); /// Returns true if the given class supports the python number protocol - bool supportsNumberProtocol(const AbstractMetaClass *metaClass); + bool supportsNumberProtocol(const AbstractMetaClass *metaClass) const; /// Returns true if the given class supports the python sequence protocol - bool supportsSequenceProtocol(const AbstractMetaClass *metaClass); + bool supportsSequenceProtocol(const AbstractMetaClass *metaClass) const; /// Returns true if the given class supports the python mapping protocol bool supportsMappingProtocol(const AbstractMetaClass *metaClass) const; @@ -374,14 +384,15 @@ private: /// Returns true if generator should produce getters and setters for the given class. bool shouldGenerateGetSetList(const AbstractMetaClass *metaClass) const; - void writeHashFunction(QTextStream &s, const GeneratorContext &context); + void writeHashFunction(TextStream &s, const GeneratorContext &context) const; /// Write default implementations for sequence protocol - void writeDefaultSequenceMethods(QTextStream &s, const GeneratorContext &context); + void writeDefaultSequenceMethods(TextStream &s, const GeneratorContext &context) const; /// Helper function for writeStdListWrapperMethods. - void writeIndexError(QTextStream &s, const QString &errorMsg); + static void writeIndexError(TextStream &s, const QString &errorMsg); - QString writeReprFunction(QTextStream &s, const GeneratorContext &context, uint indirections); + QString writeReprFunction(TextStream &s, const GeneratorContext &context, + uint indirections) const; const AbstractMetaFunction *boolCast(const AbstractMetaClass *metaClass) const; bool hasBoolCast(const AbstractMetaClass *metaClass) const |