def generate_header(self): file_path = io_utils.cpp_object_header_path(self.group_name, self.class_name) output_header = open(file_path, 'w') def_guard = '#ifndef LESSCHATCORE_{0}_{1}_H_\n#define LESSCHATCORE_{0}_{1}_H_'.format( self.group_name.upper().replace('/', '_'), CppClass.__convert_class_name_to_file_name(self.class_name).upper()) end_def_guard = '#endif /* defined(LESSCHATCORE_{0}_{1}_H_) */'.format( self.group_name.upper().replace('/', '_'), CppClass.__convert_class_name_to_file_name(self.class_name).upper()) cpp_include = '#include <string>\n#include <memory>\n#include <vector>\n\n#include "base/base.h"' cpp_class_begin = 'class LCC_DLL {0} : public CodingInterface {{'.format(self.class_name) cpp_class_end = '};' cpp_constructor = '{0}();'.format(self.class_name) cpp_deconstructor = 'virtual ~{0}();'.format(self.class_name) cpp_init_method = self.__generate_init_method_declarasion() cpp_clone = 'std::unique_ptr<{0}> Clone() const;'.format(self.class_name) cpp_getter_setter_split = '// Getter/Setter --------------------------------------------------------' cpp_variable_split = '// Variable --------------------------------------------------------' cpp_disallow_copy_and_assign = 'DISALLOW_COPY_AND_ASSIGN({0});'.format(self.class_name) output_header.write(def_guard + _CPP_BR) output_header.write(cpp_include + _CPP_BR) output_header.write(_CPP_NAMESPACE_BEGIN + _CPP_BR) if self.class_comment is not None: comment = self.__find_replacement_by_define_name(self.class_comment) output_header.write('{0}'.format(comment)) output_header.write(cpp_class_begin + '\n') output_header.write(_CPP_PUBLIC + _CPP_BR) for cpp_enum in self.cpp_enum_list: output_header.write(cpp_enum.generate_cpp_enum(_CPP_SPACE) + '\n') output_header.write(_CPP_SPACE + _CPP_LIFECYCLE_SPLIT + _CPP_BR) output_header.write(_CPP_SPACE + cpp_constructor + _CPP_BR) output_header.write(_CPP_SPACE + cpp_deconstructor + _CPP_BR) output_header.write(_CPP_SPACE + cpp_init_method + _CPP_BR) output_header.write(_CPP_SPACE + cpp_clone + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_CODING_INTERFACE_SPLIT + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_INIT_WITH_JSON_DECLARATION + _CPP_BR) output_header.write(_CPP_SPACE + cpp_getter_setter_split + _CPP_BR) for cpp_var in self.cpp_var_list: output_header.write(_CPP_SPACE + cpp_var.getter() + '\n') output_header.write(_CPP_SPACE + cpp_var.setter() + _CPP_BR) output_header.write(_CPP_PRIVATE + _CPP_BR) output_header.write(_CPP_SPACE + cpp_variable_split + _CPP_BR) for cpp_var in self.cpp_var_list: output_header.write(_CPP_SPACE + cpp_var.private_var() + '\n') output_header.write(_CPP_BR) output_header.write(_CPP_SPACE + cpp_disallow_copy_and_assign + '\n') output_header.write(cpp_class_end + _CPP_BR) output_header.write(_CPP_NAMESPACE_END + _CPP_BR) output_header.write(end_def_guard + _CPP_BR)
def generate_header(self): """Generates C++ Object header file. """ file_path = io_utils.cpp_object_header_path(self.__group_name, self.__class_name) output_header = open(file_path, 'w') def_guard = '#ifndef {2}_{0}_{1}_H_\n#define {2}_{0}_{1}_H_'.format( self.__group_name.upper().replace('/', '_'), cpp_class_name_to_cpp_file_name(self.__class_name).upper(), self.__config.cpp_module_name) end_def_guard = '#endif /* defined({2}_{0}_{1}_H_) */'.format( self.__group_name.upper().replace('/', '_'), cpp_class_name_to_cpp_file_name(self.__class_name).upper(), self.__config.cpp_module_name) cpp_include = '#include <string>\n#include <memory>\n#include <vector>\n\n#include "base/base.h"' cpp_class_begin = 'class LCC_DLL {0} : public CodingInterface {{'.format( self.__class_name) cpp_class_end = '};' cpp_constructor = '{0}();'.format(self.__class_name) cpp_deconstructor = 'virtual ~{0}();'.format(self.__class_name) cpp_init_method = self.__generate_init_method_declarasion() cpp_clone = 'std::unique_ptr<{0}> Clone() const;'.format( self.__class_name) cpp_getter_setter_split = '// Getter/Setter --------------------------------------------------------' cpp_variable_split = '// Variable --------------------------------------------------------' cpp_disallow_copy_and_assign = 'DISALLOW_COPY_AND_ASSIGN({0});'.format( self.__class_name) output_header.write(def_guard + _CPP_BR) output_header.write(cpp_include + _CPP_BR) output_header.write(self.__config.cpp_ns_begin + _CPP_BR) if self.__class_comment is not None: comment = self.__find_replacement_by_define_name( self.__class_comment) output_header.write('{0}'.format(comment)) output_header.write(cpp_class_begin + '\n') output_header.write(_CPP_PUBLIC + _CPP_BR) for cpp_enum in self.__cpp_enum_list: output_header.write(cpp_enum.generate_cpp_enum(_CPP_SPACE) + '\n') output_header.write(_CPP_SPACE + _CPP_LIFECYCLE_SPLIT + _CPP_BR) output_header.write(_CPP_SPACE + cpp_constructor + _CPP_BR) output_header.write(_CPP_SPACE + cpp_deconstructor + _CPP_BR) output_header.write(_CPP_SPACE + cpp_init_method + _CPP_BR) output_header.write(_CPP_SPACE + cpp_clone + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_CODING_INTERFACE_SPLIT + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_INIT_WITH_JSON_DECLARATION + _CPP_BR) output_header.write(_CPP_SPACE + cpp_getter_setter_split + _CPP_BR) for cpp_var in self.__cpp_var_list: output_header.write(_CPP_SPACE + cpp_var.getter() + '\n') output_header.write(_CPP_SPACE + cpp_var.setter() + _CPP_BR) output_header.write(_CPP_PRIVATE + _CPP_BR) output_header.write(_CPP_SPACE + cpp_variable_split + _CPP_BR) for cpp_var in self.__cpp_var_list: output_header.write(_CPP_SPACE + cpp_var.private_var() + '\n') output_header.write(_CPP_BR) output_header.write(_CPP_SPACE + cpp_disallow_copy_and_assign + '\n') output_header.write(cpp_class_end + _CPP_BR) output_header.write(self.__config.cpp_ns_end + _CPP_BR) output_header.write(end_def_guard + _CPP_BR)
def generate_manager_header(self): if self.cpp_manager_or_none is None: return cpp_manager = self.cpp_manager_or_none file_path = io_utils.cpp_object_header_path(self.group_name, cpp_manager.class_name()) output_header = open(file_path, 'w') def_guard = '#ifndef LESSCHATCORE_{0}_{1}_H_\n#define LESSCHATCORE_{0}_{1}_H_'.format( self.group_name.upper().replace('/', '_'), CppClass.__convert_class_name_to_file_name(cpp_manager.class_name()).upper()) end_def_guard = '#endif /* defined(LESSCHATCORE_{0}_{1}_H_) */'.format( self.group_name.upper().replace('/', '_'), CppClass.__convert_class_name_to_file_name(cpp_manager.class_name()).upper()) cpp_include = '#include <string>\n' \ '#include <memory>\n' \ '#include <vector>\n' \ '#include <functional>\n\n' \ '#include "easySQLite/easySQLite.h"\n\n' \ '#include "base/base.h"\n#include "director/object_manager.h"\n#include "api/web_api.h"\n\n' cpp_include += '#include "{0}/{1}.h"'.format(self.group_name.replace('core/', ''), CppClass.__convert_class_name_to_file_name(self.class_name)) cpp_class_begin = 'class LCC_DLL {0} : public ObjectManager {{'.format(cpp_manager.class_name()) cpp_class_end = '};' cpp_constructor = 'explicit {0}(Director* director);'.format(cpp_manager.class_name()) cpp_deconstructor = 'virtual ~{0}();'.format(cpp_manager.class_name()) cpp_init_method = 'bool InitOrDie();' cpp_default_manager = 'static const {0}* DefaultManager();'.format(cpp_manager.class_name()) cpp_manager_save_methods = cpp_manager.generate_save_declarations(_CPP_SPACE) cpp_manager_fetch_methods = cpp_manager.generate_fetch_declarations(_CPP_SPACE) cpp_manager_delete_methods = cpp_manager.generate_delete_declarations(_CPP_SPACE) cpp_disallow_copy_and_assign = 'DISALLOW_COPY_AND_ASSIGN({0});'.format(cpp_manager.class_name()) cpp_manager_http_methods = cpp_manager.generate_manager_http_declarations(_CPP_SPACE) output_header.write(def_guard + _CPP_BR) output_header.write(cpp_include + _CPP_BR) output_header.write(_CPP_NAMESPACE_BEGIN + _CPP_BR) output_header.write(cpp_class_begin + '\n') output_header.write(_CPP_PUBLIC + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_LIFECYCLE_SPLIT + _CPP_BR) output_header.write(_CPP_SPACE + cpp_constructor + _CPP_BR) output_header.write(_CPP_SPACE + cpp_deconstructor + _CPP_BR) output_header.write(_CPP_SPACE + cpp_init_method + _CPP_BR) output_header.write(_CPP_SPACE + cpp_default_manager + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_HTTP_SPLIT + _CPP_BR) output_header.write(cpp_manager_http_methods) output_header.write(_CPP_SPACE + _CPP_PERSISTENT_STORE_SPLIT + _CPP_BR) output_header.write(cpp_manager_save_methods) output_header.write(cpp_manager_fetch_methods) output_header.write(cpp_manager_delete_methods) output_header.write(_CPP_PRIVATE + '\n') output_header.write(_CPP_SPACE + cpp_manager.sqlite_table_var() + _CPP_BR) for table_name in cpp_manager.table_name_list: output_header.write(_CPP_SPACE + cpp_manager.sqlite_table_var(table_name) + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_UTILS_SPLIT + _CPP_BR) output_header.write(_CPP_SPACE + cpp_manager.sqlite_record_by_object_declaration() + _CPP_BR) for table_name in cpp_manager.table_name_list: output_header.write(_CPP_SPACE + cpp_manager.sqlite_record_by_object_declaration(table_name) + _CPP_BR) output_header.write(cpp_manager.unsafe_save_declaration(_CPP_SPACE)) for table_name in cpp_manager.table_name_list: output_header.write(cpp_manager.unsafe_save_declaration(_CPP_SPACE, table_name)) output_header.write(_CPP_SPACE + cpp_manager.sqlite_object_from_record_declaration() + _CPP_BR) output_header.write('\n' + _CPP_SPACE + cpp_disallow_copy_and_assign + '\n') output_header.write(cpp_class_end + _CPP_BR) output_header.write(_CPP_NAMESPACE_END + _CPP_BR) output_header.write(end_def_guard + _CPP_BR)
def generate_manager_header(self): """Generates C++ Object Manager header. """ if self.__cpp_manager_or_none is None: return cpp_manager = self.__cpp_manager_or_none file_path = io_utils.cpp_object_header_path(self.__group_name, cpp_manager.class_name()) output_header = open(file_path, 'w') def_guard = '#ifndef {2}_{0}_{1}_H_\n#define {2}_{0}_{1}_H_'.format( self.__group_name.upper().replace('/', '_'), cpp_class_name_to_cpp_file_name(cpp_manager.class_name()).upper(), self.__config.cpp_module_name) end_def_guard = '#endif /* defined({2}_{0}_{1}_H_) */'.format( self.__group_name.upper().replace('/', '_'), cpp_class_name_to_cpp_file_name(cpp_manager.class_name()).upper(), self.__config.cpp_module_name) cpp_include = '#include <string>\n' \ '#include <memory>\n' \ '#include <vector>\n' \ '#include <functional>\n\n' \ '#include "easySQLite/easySQLite.h"\n\n' \ '#include "base/base.h"\n#include "director/object_manager.h"\n#include "api/web_api.h"\n\n' cpp_include += '#include "{0}/{1}.h"'.format( self.__group_name.replace('core/', ''), cpp_class_name_to_cpp_file_name(self.__class_name)) cpp_class_begin = 'class LCC_DLL {0} : public ObjectManager {{'.format( cpp_manager.class_name()) cpp_class_end = '};' cpp_constructor = 'explicit {0}(Director* director);'.format( cpp_manager.class_name()) cpp_deconstructor = 'virtual ~{0}();'.format(cpp_manager.class_name()) cpp_init_method = 'bool InitOrDie();' cpp_default_manager = 'static const {0}* DefaultManager();'.format( cpp_manager.class_name()) cpp_manager_save_methods = cpp_manager.generate_save_declarations( _CPP_SPACE) cpp_manager_fetch_methods = cpp_manager.generate_fetch_declarations( _CPP_SPACE) cpp_manager_delete_methods = cpp_manager.generate_delete_declarations( _CPP_SPACE) cpp_disallow_copy_and_assign = 'DISALLOW_COPY_AND_ASSIGN({0});'.format( cpp_manager.class_name()) cpp_manager_http_methods = cpp_manager.generate_manager_http_declarations( _CPP_SPACE) output_header.write(def_guard + _CPP_BR) output_header.write(cpp_include + _CPP_BR) output_header.write(self.__config.cpp_ns_begin + _CPP_BR) output_header.write(cpp_class_begin + '\n') output_header.write(_CPP_PUBLIC + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_LIFECYCLE_SPLIT + _CPP_BR) output_header.write(_CPP_SPACE + cpp_constructor + _CPP_BR) output_header.write(_CPP_SPACE + cpp_deconstructor + _CPP_BR) output_header.write(_CPP_SPACE + cpp_init_method + _CPP_BR) output_header.write(_CPP_SPACE + cpp_default_manager + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_HTTP_SPLIT + _CPP_BR) output_header.write(cpp_manager_http_methods) output_header.write(_CPP_SPACE + _CPP_PERSISTENT_STORE_SPLIT + _CPP_BR) output_header.write(cpp_manager_save_methods) output_header.write(cpp_manager_fetch_methods) output_header.write(cpp_manager_delete_methods) output_header.write(_CPP_PRIVATE + '\n') output_header.write(_CPP_SPACE + cpp_manager.sqlite_table_var() + _CPP_BR) for table_name in cpp_manager.table_name_list: output_header.write(_CPP_SPACE + cpp_manager.sqlite_table_var(table_name) + _CPP_BR) output_header.write(_CPP_SPACE + _CPP_UTILS_SPLIT + _CPP_BR) output_header.write(_CPP_SPACE + cpp_manager.sqlite_record_by_object_declaration() + _CPP_BR) for table_name in cpp_manager.table_name_list: output_header.write( _CPP_SPACE + cpp_manager.sqlite_record_by_object_declaration(table_name) + _CPP_BR) output_header.write(cpp_manager.unsafe_save_declaration(_CPP_SPACE)) for table_name in cpp_manager.table_name_list: output_header.write( cpp_manager.unsafe_save_declaration(_CPP_SPACE, table_name)) output_header.write( _CPP_SPACE + cpp_manager.sqlite_object_from_record_declaration() + _CPP_BR) output_header.write('\n' + _CPP_SPACE + cpp_disallow_copy_and_assign + '\n') output_header.write(cpp_class_end + _CPP_BR) output_header.write(self.__config.cpp_ns_end + _CPP_BR) output_header.write(end_def_guard + _CPP_BR)