Пример #1
0
 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)
Пример #2
0
 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)