def smart_set(self, cur): if self.is_pointer: if cur is None: self.set(0) elif isinstance(cur, int): self.set(cur) else: if not isinstance(cur, (list, bytes, bytearray, str)): cur = list([cur]) array_len = len(cur) pointee = self.get_pointee(array_len=array_len) pointee.smart_set(cur) elif isinstance(cur, (bytes, bytearray, str)): self.set(Format.ToBytes(cur)) elif self.is_primitive: return self.set(cur) elif self.is_array: for i, v in enumerate(cur): self.child(i).smart_set(v) elif isinstance(cur, dict): for k, v in cur.items(): self[k].smart_set(v) else: assert 0
def send(self, data): data = Format.ToBytes(data) glog.debug('Sending data %s', data) return self._send(data)
def unwhiten(self, whitened_data): res = BitOps.xorlist(whitened_data, self.get_white_seq(len(whitened_data))) return Format.ToBytes(res)
def push_data(self, data): self.buf += Format.ToBytes(data)