@@ -268,6 +268,22 @@ def generate_relations(schema):
268268 make_child_next_field (child , relation )
269269
270270
271+ def add_include (klass , key , include , cpp = False , sys = False ):
272+ for field in klass ["fields" ]:
273+ if key in field ["type" ]:
274+ if sys :
275+ klass ["h_sys_includes" ].insert (0 , include )
276+ else :
277+ klass ["h_includes" ].insert (0 , include )
278+
279+ if cpp :
280+ if sys :
281+ klass ["cpp_sys_includes" ].insert (0 , include )
282+ else :
283+ klass ["cpp_includes" ].insert (0 , include )
284+ break
285+
286+
271287def preprocess_klass (klass ):
272288 klass ["declared_classes" ].insert (0 , "dbIStream" )
273289 klass ["declared_classes" ].insert (1 , "dbOStream" )
@@ -280,6 +296,11 @@ def preprocess_klass(klass):
280296 klass ["cpp_includes" ].extend (["dbTable.h" , "dbTable.hpp" , "odb/db.h" , f"{ name } .h" ])
281297 if klass ["hasBitFields" ]:
282298 klass ["cpp_sys_includes" ].extend (["cstdint" , "cstring" ])
299+ add_include (klass , "dbObject" , "dbCore.h" , cpp = True )
300+ add_include (klass , "dbId<" , "odb/dbId.h" )
301+ add_include (klass , "dbVector" , "dbVector.h" )
302+ add_include (klass , "dbObjectType" , "odb/dbObject.h" , cpp = True )
303+ add_include (klass , "tuple" , "tuple" , cpp = True , sys = True )
283304 for field in klass ["fields" ]:
284305 if field .get ("table" , False ):
285306 page_size_part = f", { field ['page_size' ]} " if "page_size" in field else ""
0 commit comments