From 3bf1bfc2ddb27ff206a942c718e4e3da5dbc8f1c Mon Sep 17 00:00:00 2001 From: Jim Fulton <jim@zope.com> Date: Sun, 26 Oct 2008 00:36:46 +0000 Subject: [PATCH] Changed transaction records to support multiple iteration. --- src/ZODB/FileStorage/FileStorage.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/ZODB/FileStorage/FileStorage.py b/src/ZODB/FileStorage/FileStorage.py index 93a4632d..f7cdd26f 100644 --- a/src/ZODB/FileStorage/FileStorage.py +++ b/src/ZODB/FileStorage/FileStorage.py @@ -1626,8 +1626,7 @@ class FileIterator(FileStorageFormatter): raise ZODB.interfaces.StorageStopIteration() -class TransactionRecord(BaseStorage.TransactionRecord, FileStorageFormatter): - """Iterate over the transactions in a FileStorage file.""" +class TransactionRecord(BaseStorage.TransactionRecord): def __init__(self, tid, status, user, desc, ext, pos, tend, file, tpos): BaseStorage.TransactionRecord.__init__( @@ -1637,6 +1636,18 @@ class TransactionRecord(BaseStorage.TransactionRecord, FileStorageFormatter): self._file = file self._tpos = tpos + def __iter__(self): + return TransactionRecordIterator(self) + +class TransactionRecordIterator(FileStorageFormatter): + """Iterate over the transactions in a FileStorage file.""" + + def __init__(self, record): + self._file = record._file + self._pos = record._pos + self._tpos = record._tpos + self._tend = record._tend + def __iter__(self): return self -- 2.30.9