def __generate_namespace_header(self, file_cache: FileCache, capi_generator: CapiGenerator): namespace_header = file_cache.get_file_for_namespace( self.full_name_array) namespace_header.put_begin_cpp_comments(self.params) with WatchdogScope(namespace_header, self.full_name.upper() + '_INCLUDED'): namespace_header.put_include_files() namespace_header.include_user_header( file_cache.capi_header(self.full_name_array)) namespace_header.include_user_header( file_cache.fwd_header(self.full_name_array)) if self.enum_generators: namespace_header.include_user_header( file_cache.enums_header(self.full_name_array)) for nested_namespace_generator in self.nested_namespaces: namespace_header.include_user_header( file_cache.namespace_header( nested_namespace_generator.full_name_array)) for class_generator in self.classes: namespace_header.include_user_header( file_cache.class_header(class_generator.full_name_array)) self.__generate_namespace_functions(capi_generator, file_cache, namespace_header) include_headers(namespace_header, self.namespace_object.include_headers) DoxygenCppGenerator().generate_for_namespace( namespace_header, self.namespace_object, self.full_wrap_name)
def include_dependent_declaration_headers(self, file_generator: FileGenerator, file_cache: FileCache): parent_generator = self.enum_argument_generator.parent_generator if type(parent_generator) is NamespaceGenerator: header_to_include = file_cache.enums_header( parent_generator.full_name_array) else: header_to_include = file_cache.class_header_decl( parent_generator.full_name_array) file_generator.include_user_header(header_to_include)