def string(self, obj, stream): if obj is None: self.int16(-1, stream) return if not isinstance(obj, basestring): obj = str(obj) bytes = utf8_str(obj) size = len(bytes) self.int16(size, stream) stream.write(bytes)
def send_cmd(self, conn, op, store_name, packed_key, extra): store_name = utf8_str(store_name) iolist = [ chr(self.OP_CODE[op]), struct.pack(">h", len(store_name)), store_name, struct.pack(">i", len(packed_key)), packed_key, ] + extra send = False conn.send(iolist) send = True err_code = struct.unpack(">h", conn.receive(2))[0] if err_code == 0: return err_msg_len = struct.unpack(">h", conn.receive(2))[0] err_msg = conn.receive(err_msg_len) if err_code == 4: raise ObsoleteVersionError(err_msg) elif err_code == 8: raise InconsistentDataError(err_msg) else: raise ValueError("Unknown Voldemort error code %d: %s" % (err_code, err_msg))
def to_bytes(self, s): return utf8_str(s)