diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2009-11-03 17:29:04 -0200 |
---|---|---|
committer | Hugo Lima <hugo.lima@openbossa.org> | 2009-11-03 19:11:43 -0200 |
commit | ec2e6f46ced20a82d886725f146e54e96fedd2ce (patch) | |
tree | 3cc90968ba188bcf7044bcc07535d3582524734f /cppgenerator.h | |
parent | e01eba39663c2f7d0f1137ab30ed18891394afb5 (diff) |
Add initial support for python sequence protocol.
Diffstat (limited to 'cppgenerator.h')
-rw-r--r-- | cppgenerator.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/cppgenerator.h b/cppgenerator.h index 3bff8171b..af62504dc 100644 --- a/cppgenerator.h +++ b/cppgenerator.h @@ -32,6 +32,8 @@ */ class CppGenerator : public ShibokenGenerator { +public: + CppGenerator(); protected: QString fileNameForClass(const AbstractMetaClass* metaClass) const; QList<AbstractMetaFunctionList> filterGroupedFunctions(const AbstractMetaClass* metaClass = 0); @@ -62,6 +64,10 @@ private: void writeClassRegister(QTextStream& s, const AbstractMetaClass* metaClass); void writeClassDefinition(QTextStream& s, const AbstractMetaClass* metaClass); void writeMethodDefinition(QTextStream& s, const AbstractMetaFunctionList overloads); + /// Writes the implementation of all methods part of python sequence protocol + void writeSequenceMethods(QTextStream& s, const AbstractMetaClass* metaClass); + /// Writes the struct PySequenceMethods for types thats supports the python sequence protocol + void writeTypeAsSequenceDefinition(QTextStream& s, const AbstractMetaClass* metaClass); void writeTypeAsNumberDefinition(QTextStream& s, const AbstractMetaClass* metaClass); void writeRichCompareFunction(QTextStream& s, const AbstractMetaClass* metaClass); @@ -80,6 +86,11 @@ private: void writeFlagsUnaryOperator(QTextStream& s, const AbstractMetaEnum* cppEnum, QString pyOpName, QString cppOpName, bool boolResult = false); + /// Returns true if the given class supports the python sequence protocol + bool supportsSequenceProtocol(const AbstractMetaClass* metaClass); + // Maps special function names to function parameters and return types + // used by CPython API in the sequence protocol. + QHash<QString, QPair<QString, QString> > m_sequenceProtocol; }; #endif // CPPGENERATOR_H |