def _gen_inject_code(self): """ 获取注入代码。 目前实现二种代码,后面可以加入多种。 :return: """ p = random.randrange(0, 10) # now use two code type if p > 4: num = [] for _ in range(0, 3): num.append(RandomGenerater.generate_int()) tpl_data = { "num": num, "var_name": RandomGenerater.generate_string() } code_declare = TemplateManager.get_data( os.path.join(self.tpl_folder_path, "one_int_declare.cpp"), [tpl_data]) code = TemplateManager.get_data( os.path.join(self.tpl_folder_path, "one_int.cpp"), [tpl_data]) return code_declare, code else: num = [] for _ in range(0, 6): num.append(RandomGenerater.generate_float()) num.sort() tpl_data = { "num": num, "var_name": RandomGenerater.generate_string() } code_declare = TemplateManager.get_data( os.path.join(self.tpl_folder_path, "one_float_declare.cpp"), [tpl_data]) code = TemplateManager.get_data( os.path.join(self.tpl_folder_path, "one_float.cpp"), [tpl_data]) return code_declare, code
def get_call_string(self, inst_name=None): return TemplateManager.get_data(self.call_template_file, [self, {"class_inst": inst_name}])
def get_code_string(self): return TemplateManager.get_data(self.code_template_file, [self])
def to_string(self): return TemplateManager.get_data(self.def_template_file, [self])
def get_need_includes(self): return TemplateManager.get_data(self.need_includes_template_file, [self])
def get_stack_instance_def(self, inst_name): return TemplateManager.get_data(self.stack_instance_def_template_file, [self, {"inst_name": inst_name}])
def get_code_string(self, contain_methods=True): return TemplateManager.get_data(self.code_template_file, [self, {"contain_methods": contain_methods}])
def get_def_string(self,implement_construct_destruct=False): return TemplateManager.get_data(self.def_template_file, [self,{"implement_construct_destruct":implement_construct_destruct}])