Public Member Functions | |
def | __init__ |
def | hcodeobj |
def | readdb |
Data Fields | |
data | |
db | |
fp | |
version |
Definition at line 47 of file hcodedb.py.
def hcodedb::HCodeDB::__init__ | ( | self, | ||
fp = None | ||||
) |
def hcodedb::HCodeDB::hcodeobj | ( | self, | ||
key, | ||||
type, | ||||
size, | ||||
data | ||||
) |
Definition at line 55 of file hcodedb.py.
00055 : 00056 if type == gtypes.MECH: 00057 return MECHObject(key, type, size, data) 00058 elif type == gtypes.MAP: 00059 return MAPObject(key, type, size, data) 00060 else: 00061 return HCodeObject(key, type, size, data) 00062 def readdb(self):
def hcodedb::HCodeDB::readdb | ( | self | ) |
Definition at line 63 of file hcodedb.py.
00063 : 00064 # version, [key, type, size]+ 00065 # version == char 00066 # key == int 00067 # type == unsigned char 00068 # size == unsigned short 00069 self.version = ord(self.fp.read(1)) 00070 keydata = self.fp.read(4) 00071 while keydata and len(keydata) == 4: 00072 key = struct.unpack("=i", keydata)[0] 00073 if key < 0: 00074 break 00075 header = self.fp.read(3) 00076 type, size = struct.unpack("=bH", header) 00077 data = self.fp.read(size) 00078 # Disabled MT_LIST support, MUX doesn't use it 00079 # data = [self.fp.read(size),] 00080 # if type == gtypes.MT_LIST: 00081 # sys.stderr.write("Found MT_LIST_TYPE.\n") 00082 # self.recursize_readlist(data) 00083 obj = self.hcodeobj(key, type, size, data) 00084 self.data.append(obj) 00085 self.db[key] = obj 00086 keydata = self.fp.read(4) 00087 00088 sys.stderr.write("Done loading xcode tree: %d\n"%self.fp.tell()) 00089 # Read postdata, objtypes and all 00090 # (God, this db format is f*cked) 00091 for meth in ("load_update1", "load_update2", 00092 "load_update3", "load_update4"): 00093 for obj in self.data: 00094 if hasattr(obj, meth): 00095 getattr(obj,meth)(self.fp) 00096 sys.stderr.write("Done pass " + meth + ": %d\n"%self.fp.tell()) 00097 00098 00099 00100 class HCodeObject:
Definition at line 49 of file hcodedb.py.
Definition at line 50 of file hcodedb.py.
Definition at line 52 of file hcodedb.py.
Definition at line 69 of file hcodedb.py.