def getDefinition(self, name) : result = "" if self.array : if self.array_size != 0 : result += " {0} {1}[{2}];\n".format(util.getInnerTypeName(self.data_type), name, self.array_size) else : result += " {0} {1};\n".format(util.getInnerTypeName(self.data_type), name) return result
def __init__(self, field, field_name) : methods.Method.__init__(self, "get" + field_name + "Ptr", result_type = "{0} *".format(util.getInnerTypeName(field.data_type)), public = False, static = field.static, inline = True) self.field = field self.field_name = field_name
def getBody(self) : return VArrayResizeMethodTmp.render(class_name = self.parent.__name__, field = self.field_name, logger = util.isLogEnabledForClass(self.parent), singleton = self.parent.singleton, field_type = util.getInnerTypeName(self.field.data_type), memory_type = self.memory_type)
def getArrayBuffers(the_class) : result = "" for name in the_class.__field_names__ : field = the_class.__dict__[name] if field.array and field.array_size == 0 : result += " static ArrayType<{0}> {1};\n".format(util.getInnerTypeName(field.data_type), name) if len(result) != 0 : result = "\nprivate: //! Dynamic arrays buffers\n" + result return result
def getUnionDefinition(union) : result = "\nunion " + union.__name__ + "\n{\n" union_dict = union.__dict__ for key in union_dict : current = union_dict[key] if isinstance(current, fields.Field) : result += " " + util.getInnerTypeName(current.data_type) + " " + key + ";\n" result += "};\n" return result
def getEnumDefinition(enum) : result = "\nenum {0}\n".format(util.getInnerTypeName(enum)) + "{\n" enum_dict = enum.__dict__ for key in enum_dict : value = enum_dict[key] if isinstance(value, int) : result += " {0} = {1},\n".format(key, value) result += "};\n" return result
def __init__(self, field, field_name, memory_type) : if memory_type == dbtypes.RAM_Memory : methods.Method.__init__(self, "get" + field_name + "Ptr", result_type = "{0} *".format(util.getInnerTypeName(field.data_type)), public = False, static = field.static, inline = True) else : methods.Method.__init__(self, "get" + field_name + "Ptr", result_type = dbtypes.Pointer(field.data_type), public = False, static = field.static, inline = True) self.field = field self.field_name = field_name
def getStructDefinition(struct) : result = "\nstruct " + struct.__name__ + "\n{\n" struct_dict = struct.__dict__ for key in struct_dict : current = struct_dict[key] if isinstance(current, fields.Field) : result += " " + util.getInnerTypeName(current.data_type) + " " + key + ";\n" result += "};\n" result += getStructEqualOperator(struct) result += getStructNotEqualOperator(struct) return result
def getRegisterRoutine(self, name) : result = "" if self.static : if not self.array : result += " Meta.{0} = metadata::registerField(self, \"{0}\", yamm::Pointer<Char>(reinterpret_cast<Char*>(&staticData().{0})), 0, sizeof({1}));\n".format(name, util.getInnerTypeName(self.data_type)) elif self.array and self.array_size != 0 : result += " Meta.{0} = metadata::registerFixedArrayField(self, \"{0}\", yamm::Pointer<Char>(reinterpret_cast<Char*>(staticData().{0})), 0, sizeof({1}));\n".format(name, util.getInnerTypeName(self.data_type)) else : result += " Meta.{0} = metadata::registerVariableArrayField(self, \"{0}\", &{0}, sizeof({1}));\n".format(name, util.getInnerTypeName(self.data_type)) else : if not self.array : result += " Meta.{0} = metadata::registerField(self, \"{0}\", &_instances, (ptrdiff_t)&prototype.{0} - (ptrdiff_t)&prototype, sizeof({1}));\n".format(name, util.getInnerTypeName(self.data_type)) elif self.array and self.array_size != 0 : result += " Meta.{0} = metadata::registerFixedArrayField(self, \"{0}\", &_instances, (ptrdiff_t)&prototype.{0} - (ptrdiff_t)&prototype, sizeof({1}));\n".format(name, util.getInnerTypeName(self.data_type)) else : result += " Meta.{0} = metadata::registerVariableArrayField(self, \"{0}\", &{0}, sizeof({1}));\n".format(name, util.getInnerTypeName(self.data_type)) return result
def getStaticFieldsInstantiations(the_class) : result = "{0}::{1}::StaticFields {0}::{1}::_staticData;\n".format(dbtypes.HSDB.prefix, the_class.__name__) if not the_class.singleton : result += "{0}::{1}::ArrayType<{0}::{1}::Fields> {0}::{1}::_instances;\n".format(dbtypes.HSDB.prefix, the_class.__name__) for name in the_class.__field_names__ : field = the_class.__dict__[name] if field.array and field.array_size == 0 : result += "{0}::{1}::ArrayType<{3}> {0}::{1}::{2};\n".format(dbtypes.HSDB.prefix, the_class.__name__, name, util.getInnerTypeName(field.data_type)) if util.isLogEnabledForClass(the_class) : result += "{0}::{1}::MetaFields {0}::{1}::Meta;\n".format(dbtypes.HSDB.prefix, the_class.__name__) result += "metadata::Class {0}::{1}::self;\n".format(dbtypes.HSDB.prefix, the_class.__name__) return result
def getBody(self) : result = " { " result += "return yamm::HashFAQ6<{0}>(key) % get{1}{2}TableSize();".format(util.getInnerTypeName(self.relationship.key_type), self.relationship.name, self.relationship.child_name) return result + " }"