Mercurial > projects > qtd
comparison generator/cppheadergenerator.cpp @ 260:b5773ccab07d lifetime
closer
author | maxter |
---|---|
date | Fri, 18 Sep 2009 18:52:03 +0000 |
parents | 515d6e1c7b10 |
children | 5bcfe9e7db7f |
comparison
equal
deleted
inserted
replaced
259:515d6e1c7b10 | 260:b5773ccab07d |
---|---|
174 if (!java_class->generateShellClass()) { | 174 if (!java_class->generateShellClass()) { |
175 s << "#endif" << endl << endl; | 175 s << "#endif" << endl << endl; |
176 priGenerator->addHeader(java_class->package(), fileNameForClass(java_class)); | 176 priGenerator->addHeader(java_class->package(), fileNameForClass(java_class)); |
177 return ; | 177 return ; |
178 } | 178 } |
179 | |
180 if (java_class->name() == "QFSFileEngine") | |
181 { | |
182 std::cout << java_class->typeEntry()->isObject() << std::endl; | |
183 std::cout << java_class->hasVirtualDestructor() << std::endl; | |
184 qFatal("Bo"); | |
185 } | |
186 | 179 |
187 s << "class " << shellClassName(java_class) | 180 s << "class " << shellClassName(java_class) |
188 << " : public " << java_class->qualifiedCppName(); | 181 << " : public " << java_class->qualifiedCppName(); |
189 if (java_class->isQObject()) | 182 if (java_class->isQObject()) |
190 s << ", public QtD_QObjectEntity"; | 183 s << ", public QtD_QObjectEntity"; |
191 else if (java_class->hasVirtualDestructor()) | 184 else if (java_class->isPolymorphic()) |
192 s << ", public QtD_Entity"; | 185 s << ", public QtD_Entity"; |
193 s << endl << "{" << endl; | 186 s << endl << "{" << endl; |
194 | 187 |
195 if (java_class->isQObject()) { | 188 if (java_class->isQObject()) { |
196 s << "public:" << endl | 189 s << "public:" << endl |
214 foreach (const AbstractMetaFunction *function, java_class->functions()) { | 207 foreach (const AbstractMetaFunction *function, java_class->functions()) { |
215 if (function->isConstructor() && !function->isPrivate()) | 208 if (function->isConstructor() && !function->isPrivate()) |
216 writeFunction(s, function); | 209 writeFunction(s, function); |
217 } | 210 } |
218 | 211 |
219 if (java_class->typeEntry()->isObject() && java_class->hasVirtualDestructor()) | 212 if (java_class->isPolymorphic()) |
220 s << " ~" << shellClassName(java_class) << "();" << endl << endl; | 213 s << " ~" << shellClassName(java_class) << "();" << endl << endl; |
221 | 214 |
222 | |
223 // All functions in original class that should be reimplemented in shell class | 215 // All functions in original class that should be reimplemented in shell class |
224 AbstractMetaFunctionList shell_functions = java_class->functionsInShellClass(); | 216 AbstractMetaFunctionList shell_functions = java_class->functionsInShellClass(); |
225 foreach (const AbstractMetaFunction *function, shell_functions) { | 217 foreach (const AbstractMetaFunction *function, shell_functions) { |
226 if(notWrappedYet(function)) | 218 if(notWrappedYet(function)) |
227 continue; | 219 continue; |
253 /* qtd | 245 /* qtd |
254 writeVariablesSection(s, java_class); | 246 writeVariablesSection(s, java_class); |
255 */ | 247 */ |
256 writeInjectedCode(s, java_class); | 248 writeInjectedCode(s, java_class); |
257 | 249 |
258 s << "};" << endl << endl | 250 s << "};" << endl << endl; |
259 << "#endif // " << include_block << endl; | 251 |
252 if (!java_class->isQObject() && java_class->isPolymorphic() && java_class->baseClass()) | |
253 s << "extern \"C\" DLL_PUBLIC void* qtd_" << java_class->rootClass()->name() << "_dId(void *nativeId);" << endl; | |
254 | |
255 s << "#endif // " << include_block << endl; | |
260 | 256 |
261 priGenerator->addHeader(java_class->package(), fileNameForClass(java_class)); | 257 priGenerator->addHeader(java_class->package(), fileNameForClass(java_class)); |
262 priGenerator->addClass(java_class->package(), java_class->name()); | 258 priGenerator->addClass(java_class->package(), java_class->name()); |
263 } | 259 } |
264 | 260 |