def __generate_class_body(self, declaration_header): with Unindent(declaration_header): declaration_header.put_line('public:') self.__generate_enum_definitions(declaration_header) self.__generate_constructor_declarations(declaration_header) self.__generate_method_declarations(declaration_header) self.inheritance_traits = create_inheritance_traits( self.class_object.requires_cast_to_base) declaration_header.put_line('') self.lifecycle_traits.generate_std_methods_declarations( declaration_header, self) if hasattr(self, 'extension_base_class_generator'): self.__generate_cast_name_declaration(declaration_header) with Unindent(declaration_header): declaration_header.put_line('protected:') self.inheritance_traits.generate_set_object_declaration( declaration_header, self) self.inheritance_traits.generate_pointer_declaration( declaration_header, self)
def __generate_root_initializer(self, out: FileGenerator, namespace_generators: []): out.put_line('class {0}'.format( self.params_description.root_header_initializer)) with IndentScope(out, '};'): member_names = [] for namespace_generator in namespace_generators: member_name = namespace_generator.wrap_name.lower( ) + '_module_init' out.put_line('{namespace}::Initialization {member};'.format( namespace=namespace_generator.wrap_name, member=member_name)) member_names.append(member_name) out.put_line('') if not self.params_description.shared_library_name: out.put_line('{0}();'.format( self.params_description.root_header_initializer)) with Unindent(out): out.put_line('public:') if member_names: with IfDefScope( out, '{0}_LIBRARY_USE_DYNAMIC_LOADER'.format( self.api_description.project_name.upper()), False): out.put_line( '{0}(const char* shared_library_name) :'.format( self.params_description.root_header_initializer)) with Indent(out): for member_name in member_names[:-1]: out.put_line( '{member_name}(shared_library_name),'.format( member_name=member_name)) out.put_line( '{member_name}(shared_library_name)'.format( member_name=member_names[-1])) with IndentScope(out): pass if self.params_description.shared_library_name: out.put_line('{0}()'.format( self.params_description.root_header_initializer)) with IndentScope(out): pass
def __generate_body(self, out: FileGenerator): out.put_line('class Initialization') with IndentScope(out, '};'): self.__generate_members(out) self.__generate_load_function(out) self.__generate_load_module(out) if not self.params.shared_library_name: out.put_line('Initialization();') out.put_line('Initialization(const Initialization&);') if self.params.enable_cpp11_features_in_wrap_code: move_constructors_delete_condition = '{ns}_CPP_COMPILER_HAS_MOVE_CONSTRUCTOR_DELETE'.format( ns=self.namespace_name) with IfDefScope(out, move_constructors_delete_condition, False): with Indent(out): out.put_line( 'Initialization(Initialization &&) = delete;') with Unindent(out): out.put_line('public:') self.__generate_constructor(out) self.__generate_destructor(out)
def __generate_body(self, out: FileGenerator): out.put_line('class Initialization') with IndentScope(out, '};'): with Unindent(out): out.put_line('public:') self.__generate_constructor(out)