コード例 #1
0
ファイル: fields.py プロジェクト: ivandzen/HSDB
 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
コード例 #2
0
ファイル: fields.py プロジェクト: ivandzen/HSDB
 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
コード例 #3
0
ファイル: fields.py プロジェクト: ivandzen/HSDB
 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)
コード例 #4
0
ファイル: gen_defs.py プロジェクト: ivandzen/HSDB
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
コード例 #5
0
ファイル: gen_defs.py プロジェクト: ivandzen/HSDB
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
コード例 #6
0
ファイル: gen_defs.py プロジェクト: ivandzen/HSDB
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
コード例 #7
0
ファイル: fields.py プロジェクト: ivandzen/HSDB
 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
コード例 #8
0
ファイル: gen_defs.py プロジェクト: ivandzen/HSDB
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
コード例 #9
0
ファイル: fields.py プロジェクト: ivandzen/HSDB
 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
コード例 #10
0
ファイル: gen_defs.py プロジェクト: ivandzen/HSDB
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
コード例 #11
0
ファイル: rel_hash.py プロジェクト: ivandzen/HSDB
 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 + " }"