def data(self, obj, total=None): """Write the objects data. """ if total is not None: tmp = '%s ' % CHAR_MAP.get(xc_type(obj[0]), None) if type(obj[0]) in XC_TYPES: for i in xrange(total): self._file.write(tmp % obj[i].value) elif type(obj[0]) in CTYPES: for i in xrange(total): self._file.write(tmp % obj[i]) else: for i in xrange(total): data(self, obj[i], "") return tmp = '%s ' % CHAR_MAP[xc_type(obj)] if type(obj) not in XC_TYPES: self._file.write(tmp % obj) else: self._file.write(tmp % obj.value)
def info(self, obj): """Write the object info""" kind = xc_type(obj) self._file.write("%c " % kind) if kind in ['C', 'I', 'N', 'R']: self._file.write('%d ' % ctypes.sizeof(c_type(obj))) elif type(obj) is XCStruct: self._file.write('%s ' % obj.name()) else: self._file.write('%s ' % type(obj).__name__)