def askObjectHistory(self, conn, oid, first, last): if first >= last: raise ProtocolError('invalid offsets') app = self.app if app.tm.loadLocked(oid): raise DelayEvent history_list = app.dm.getObjectHistory(oid, first, last - first) if history_list is None: p = Errors.OidNotFound(dump(oid)) else: p = Packets.AnswerObjectHistory(oid, history_list) conn.answer(p)
def askObjectUndoSerial(self, conn, ttid, ltid, undone_tid, oid_list): app = self.app findUndoTID = app.dm.findUndoTID getObjectFromTransaction = app.tm.getObjectFromTransaction object_tid_dict = {} for oid in oid_list: current_serial, undo_serial, is_current = findUndoTID(oid, ttid, ltid, undone_tid, getObjectFromTransaction(ttid, oid)) if current_serial is None: p = Errors.OidNotFound(dump(oid)) break object_tid_dict[oid] = (current_serial, undo_serial, is_current) else: p = Packets.AnswerObjectUndoSerial(object_tid_dict) conn.answer(p)
def askObjectUndoSerial(self, conn, ttid, ltid, undone_tid, oid_list): app = self.app findUndoTID = app.dm.findUndoTID getObjectFromTransaction = app.tm.getObjectFromTransaction object_tid_dict = {} for oid in oid_list: r = findUndoTID(oid, ttid, ltid, undone_tid, getObjectFromTransaction(ttid, oid)) if r: if not r[0]: p = Errors.OidNotFound(dump(oid)) break object_tid_dict[oid] = r else: p = Packets.AnswerObjectUndoSerial(object_tid_dict) conn.answer(p)