comparison generator/dgenerator.h @ 341:4920ef9206fe

moved enums into interfaces
author Max Samukha <maxter@spambox.com>
date Thu, 13 May 2010 16:39:41 +0300
parents adae77fdc1ea
children 08c1ca7975ab
comparison
equal deleted inserted replaced
340:9fc85d7280ba 341:4920ef9206fe
45 #include "generator.h" 45 #include "generator.h"
46 #include "metajava.h" 46 #include "metajava.h"
47 #include "cppimplgenerator.h" 47 #include "cppimplgenerator.h"
48 48
49 #include <QTextStream> 49 #include <QTextStream>
50 #include <QStack>
50 51
51 class DocParser; 52 class DocParser;
52 53
53 class DGenerator : public Generator 54 class DGenerator : public Generator
54 { 55 {
67 const AbstractMetaArgument *d_argument, 68 const AbstractMetaArgument *d_argument,
68 uint options = 0); 69 uint options = 0);
69 static QString argumentString(const AbstractMetaFunction *d_function, 70 static QString argumentString(const AbstractMetaFunction *d_function,
70 const AbstractMetaArgument *d_argument, 71 const AbstractMetaArgument *d_argument,
71 uint options = 0); 72 uint options = 0);
72 void writeEnum(QTextStream &s, const AbstractMetaEnum *d_enum); 73 void writeEnum(QTextStream &s, const AbstractMetaEnum *d_enum, bool withAliases = false);
73 void writeIntegerEnum(QTextStream &s, const AbstractMetaEnum *d_enum); 74 void writeIntegerEnum(QTextStream &s, const AbstractMetaEnum *d_enum);
74 void writeSignal(QTextStream &s, const AbstractMetaFunction *d_function); 75 void writeSignal(QTextStream &s, const AbstractMetaFunction *d_function);
75 void writeFunction(QTextStream &s, const AbstractMetaFunction *d_function, 76 void writeFunction(QTextStream &s, const AbstractMetaFunction *d_function,
76 uint included_attributes = 0, uint excluded_attributes = 0); 77 uint included_attributes = 0, uint excluded_attributes = 0);
77 void writeFieldAccessors(QTextStream &s, const AbstractMetaField *field); 78 void writeFieldAccessors(QTextStream &s, const AbstractMetaField *field);
152 AbstractMetaFunctionList generatedClassFunctions(const AbstractMetaClass *d_class); 153 AbstractMetaFunctionList generatedClassFunctions(const AbstractMetaClass *d_class);
153 154
154 void writeDestructor(QTextStream &s, const AbstractMetaClass *d_class); 155 void writeDestructor(QTextStream &s, const AbstractMetaClass *d_class);
155 void writeFlagsSetter(QTextStream &s, const AbstractMetaClass *d_class); 156 void writeFlagsSetter(QTextStream &s, const AbstractMetaClass *d_class);
156 void writeSignalHandlers(QTextStream &s, const AbstractMetaClass *d_class); 157 void writeSignalHandlers(QTextStream &s, const AbstractMetaClass *d_class);
157 void writeEnumAlias(QTextStream &s, const AbstractMetaEnum *d_enum); 158 void writeEnumAliases(QTextStream &s, const AbstractMetaEnum *d_enum);
158 void writeSignalSignatures(QTextStream &s, const AbstractMetaClass *d_class, AbstractMetaFunctionList signal_funcs); 159 void writeSignalSignatures(QTextStream &s, const AbstractMetaClass *d_class, AbstractMetaFunctionList signal_funcs);
159 void writeMetaMethodArguments(QTextStream &s, const AbstractMetaFunction *d_function, int reduce = -1); 160 void writeMetaMethodArguments(QTextStream &s, const AbstractMetaFunction *d_function, int reduce = -1);
160 void writeQObjectFunctions(QTextStream &s, const AbstractMetaClass *d_class); 161 void writeQObjectFunctions(QTextStream &s, const AbstractMetaClass *d_class);
161 void writeQObjectFreeFunctions(QTextStream &s, const AbstractMetaClass *d_class); 162 void writeQObjectFreeFunctions(QTextStream &s, const AbstractMetaClass *d_class);
162 void writeConversionFunction(QTextStream &s, const AbstractMetaClass *d_class); 163 void writeConversionFunction(QTextStream &s, const AbstractMetaClass *d_class);
165 166
166 // void writeMarshallFunction(QTextStream &s, const AbstractMetaClass *d_class); 167 // void writeMarshallFunction(QTextStream &s, const AbstractMetaClass *d_class);
167 168
168 int m_recursive; 169 int m_recursive;
169 bool m_isRecursive; 170 bool m_isRecursive;
171 QStack<const AbstractMetaClass*> m_recursionStack;
170 QSet<const TypeEntry*> typeEntries; // imports 172 QSet<const TypeEntry*> typeEntries; // imports
171 QSet<const TypeEntry*> typeEntriesEnums; // imports for enums 173 QSet<const TypeEntry*> typeEntriesEnums; // imports for enums
172 QSet<QString> excludedTypes2; 174 QSet<QString> excludedTypes2;
173 175
174 protected: 176 protected: