def read_fields(self, op): flags = 0 for i in range(op.PACK): flags |= (self.read_uint8() << 8 * i) for i in range(len(op.FIELDS)): f = op.FIELDS[i] if flags & (0x1 << i): if COMPOUND.has_key(f.type): value = self.read_compound(COMPOUND[f.type]) else: value = getattr(self, "read_%s" % f.type)() setattr(op, f.name, value)
def read_fields(self, op): flags = 0 for i in range(op.PACK): flags |= (self.read_uint8() << 8*i) for i in range(len(op.FIELDS)): f = op.FIELDS[i] if flags & (0x1 << i): if COMPOUND.has_key(f.type): value = self.read_compound(COMPOUND[f.type]) else: value = getattr(self, "read_%s" % f.type)() setattr(op, f.name, value)
def write_fields(self, op): flags = 0 for i in range(len(op.FIELDS)): f = op.FIELDS[i] value = getattr(op, f.name) if f.type == "bit": present = value else: present = value != None if present: flags |= (0x1 << i) for i in range(op.PACK): self.write_uint8((flags >> 8 * i) & 0xFF) for i in range(len(op.FIELDS)): f = op.FIELDS[i] if flags & (0x1 << i): if COMPOUND.has_key(f.type): enc = self.write_compound else: enc = getattr(self, "write_%s" % f.type) value = getattr(op, f.name) enc(value)
def write_fields(self, op): flags = 0 for i in range(len(op.FIELDS)): f = op.FIELDS[i] value = getattr(op, f.name) if f.type == "bit": present = value else: present = value != None if present: flags |= (0x1 << i) for i in range(op.PACK): self.write_uint8((flags >> 8*i) & 0xFF) for i in range(len(op.FIELDS)): f = op.FIELDS[i] if flags & (0x1 << i): if COMPOUND.has_key(f.type): enc = self.write_compound else: enc = getattr(self, "write_%s" % f.type) value = getattr(op, f.name) enc(value)