def _write_header_file(self, cat, struct_name, header_file, filter_file): self._write_header_preamble(struct_name, header_file) header_file.write("\tchar *\tid;\n") header_file.write("\tchar *\torderid;\n") filter_names = ['id'] # TODO - get all attributes (using Category.allAttrs) # TODO - Use templating for header generation for name, attr in cat.attrs.items(): if attr.scope is OCCI.Scope.All: #TODO Templating functions should check legacy type as well varType = attr.legacytype if attr.legacytype != None else ctypes.from_platform_type(attr.attrtype) header_file.write("\t" + varType + "\t" + name + ";\n") filter_names.append(name) for name, coll in cat.colls.items(): if coll.scope is OCCI.Scope.All: varType = "char *" if (coll.multiplicity.max is OCCI.Cardinality.Unbounded): varType = "int" if (coll.legacytype != None): varType = coll.legacytype header_file.write("\t" + varType + "\t" + name + ";\n") filter_names.append(name) self._write_header_conclusion(header_file) self._write_filter_struct(struct_name, filter_names, filter_file)
def _write_header_file(self, cat, struct_name, f): f.write("#ifndef _" + struct_name + "_h\n") f.write("#define _" + struct_name + "_h\n\n") f.write("struct\t" + struct_name + "\n") f.write("{\n") f.write("\tchar *\tid;\n") # TODO - get all attributes (using Category.allAttrs) # TODO - Use templating for header generation for name, attr in cat.attrs.items(): if attr.scope is OCCI.Scope.All: #TODO Templating functions should check legacy type as well varType = attr.legacytype if attr.legacytype != None else ctypes.from_platform_type(attr.attrtype) f.write("\t" + varType + "\t" + name + ";\n") for name, coll in cat.colls.items(): if coll.scope is OCCI.Scope.All: varType = "char *" if (coll.multiplicity.max is OCCI.Cardinality.Unbounded): varType = "int" if (coll.legacytype != None): varType = coll.legacytype f.write("\t" + varType + "\t" + name + ";\n") f.write("};\n\n") f.write("#endif\n")
def _write_header_file(self, cat, struct_name, header_file, filter_file): self._write_header_preamble(struct_name, header_file) header_file.write("\tchar *\tid;\n") filter_names = ['id'] # TODO - get all attributes (using Category.allAttrs) # TODO - Use templating for header generation for name, attr in cat.attrs.items(): if attr.scope is OCCI.Scope.All: #TODO Templating functions should check legacy type as well varType = attr.legacytype if attr.legacytype != None else ctypes.from_platform_type( attr.attrtype) header_file.write("\t" + varType + "\t" + name + ";\n") filter_names.append(name) for name, coll in cat.colls.items(): if coll.scope is OCCI.Scope.All: varType = "char *" if (coll.multiplicity.max is OCCI.Cardinality.Unbounded): varType = "int" if (coll.legacytype != None): varType = coll.legacytype header_file.write("\t" + varType + "\t" + name + ";\n") filter_names.append(name) self._write_header_conclusion(header_file) self._write_filter_struct(struct_name, filter_names, filter_file)
def _write_header_file(self, cat, struct_name, f): f.write("#ifndef _" + struct_name + "_h\n") f.write("#define _" + struct_name + "_h\n\n") f.write("struct\t" + struct_name + "\n") f.write("{\n") f.write("\tchar *\tid;\n") # TODO - get all attributes (using Category.allAttrs) # TODO - Use templating for header generation for name, attr in cat.attrs.items(): if attr.scope is OCCI.Scope.All: #TODO Templating functions should check legacy type as well varType = attr.legacytype if attr.legacytype != None else ctypes.from_platform_type( attr.attrtype) f.write("\t" + varType + "\t" + name + ";\n") for name, coll in cat.colls.items(): if coll.scope is OCCI.Scope.All: varType = "char *" if (coll.multiplicity.max is OCCI.Cardinality.Unbounded): varType = "int" if (coll.legacytype != None): varType = coll.legacytype f.write("\t" + varType + "\t" + name + ";\n") f.write("};\n\n") f.write("#endif\n")
def test_that_ctypes_from_platform_type_returns_char_ptr_for_string(self): assert_that(ctypes.from_platform_type('string'), is_('char *'))
def test_that_ctypes_from_platform_type_returns_int_for_int(self): assert_that(ctypes.from_platform_type('int'), is_('int'))
def category_h_members(category_file): category = category_for_file(category_file, models) for name, type_name in category.backend_type_list(): cog.outl('{0} {1};'.format(ctypes.from_platform_type(type_name), name))