예제 #1
0
    def generate_manager_implementation(self):
        if self.jni_manager_or_none is None:
            return

        jni_manager = self.jni_manager_or_none

        file_name = 'com_lesschat_core_{0}_{1}Manager.cc'.format(self.group_name, self.class_name)
        file_path = 'jni/' + file_name
        output_header = open(file_path, 'w')

        header_name = '#include "com_lesschat_core_{0}_{1}Manager.h"\n'.format(self.group_name, self.class_name)
        cpp_name = '#include "{0}/{1}_manager.h"\n'\
            .format(self.group_name, CppClass.convert_class_name_to_file_name(self.class_name))

        output_header.write(header_name)
        output_header.write(cpp_name)
        output_header.write('#include "utils/android/jni_helper.h"')
        output_header.write(_JNI_BR)

        output_header.write(self.def_cpp)
        output_header.write(_JNI_BR)

        output_header.write(jni_manager.generate_fetch_implementations())

        output_header.write(self.end_def_cpp + '\n')
    def generate_core_addition_header(self):
        file_name = 'LCC{0}_CoreAddition.h'.format(self.class_name)
        file_path = _OBJC_BUILD_PATH + string_utils.cpp_group_name_to_objc_group_name(self.group_name) + '/' + file_name
        output_header = open(file_path, 'w')

        output_header.write('#include "{0}.h"'.format(CppClass.convert_class_name_to_file_name(self.class_name)))
        output_header.write(_OBJC_BR)
        output_header.write('@interface LCC{0} () {{'.format(self.class_name))
        output_header.write('\n')
        output_header.write('@package')
        output_header.write('\n')
        output_header.write(_OBJC_SPACE)
        output_header.write('std::unique_ptr<lesschat::{0}> _coreHandle;'.format(self.class_name))
        output_header.write('\n')
        output_header.write('}')
        output_header.write(_OBJC_BR)
        output_header.write('+ (instancetype){0}WithCore{1}:(const lesschat::{1}&)core{1};'
                            .format(string_utils.first_char_to_lower(self.class_name), self.class_name))
        output_header.write(_OBJC_BR)
        output_header.write('@end')