[Checkins] SVN: zc.demostorage2/trunk/src/zc/demostorage2/ Added
some methods needed bu ZEO.
Jim Fulton
jim at zope.com
Tue Jan 22 19:42:39 EST 2008
Log message for revision 83102:
Added some methods needed bu ZEO.
Changed:
U zc.demostorage2/trunk/src/zc/demostorage2/README.txt
U zc.demostorage2/trunk/src/zc/demostorage2/__init__.py
U zc.demostorage2/trunk/src/zc/demostorage2/tests.py
-=-
Modified: zc.demostorage2/trunk/src/zc/demostorage2/README.txt
===================================================================
--- zc.demostorage2/trunk/src/zc/demostorage2/README.txt 2008-01-23 00:18:06 UTC (rev 83101)
+++ zc.demostorage2/trunk/src/zc/demostorage2/README.txt 2008-01-23 00:42:39 UTC (rev 83102)
@@ -146,11 +146,11 @@
>>> storage.load(p64(1), '') == base.load(p64(1), '')
True
- >>> serial = base.load(p64(0), '')[1]
+ >>> serial = base.getTid(p64(0))
>>> storage.loadSerial(p64(0), serial) == base.loadSerial(p64(0), serial)
True
- >>> serial = changes.load(p64(0), '')[1]
+ >>> serial = changes.getTid(p64(0))
>>> storage.loadSerial(p64(0), serial) == changes.loadSerial(p64(0),
... serial)
True
Modified: zc.demostorage2/trunk/src/zc/demostorage2/__init__.py
===================================================================
--- zc.demostorage2/trunk/src/zc/demostorage2/__init__.py 2008-01-23 00:18:06 UTC (rev 83101)
+++ zc.demostorage2/trunk/src/zc/demostorage2/__init__.py 2008-01-23 00:42:39 UTC (rev 83102)
@@ -29,10 +29,12 @@
supportsUndo = getattr(changes, 'supportsUndo', None)
if supportsUndo is not None and supportsUndo():
- self.supportsUndo = changes.supportsUndo
- self.undo = changes.undo
- self.undoLog = changes.undoLog
- self.undoInfo = changes.undoInfo
+ for meth in ('supportsUndo', 'undo', 'undoLog', 'undoInfo'):
+ setattr(self, meth, getattr(changes, meth))
+
+ for meth in ('getSize', 'history', 'isReadOnly', 'sortKey',
+ 'tpc_transaction'):
+ setattr(self, meth, getattr(changes, meth))
self._oid = max(u64(changes.new_oid()), 1l << 63)
self._lock = threading.RLock()
@@ -51,14 +53,23 @@
def __repr__(self):
return "<%s: %s>" % (self.__class__.__name__, self.getName())
- def getSize(self):
- return self.changes.getSize()
+ def getTid(self, oid):
+ try:
+ return self.changes.getTid(oid)
+ except ZODB.POSException.POSKeyError:
+ return self.base.getTid(oid)
- def history(self, *args, **kw):
- return self.changes.history(*args, **kw)
+ @synchronized
+ def lastInvalidations(self, size):
+ n = 0
+ for v in self.changes.lastInvalidations(size):
+ n += 1
+ yield v
- def isReadOnly(self):
- return self.changes.isReadOnly()
+ size -= n
+ if size > 0:
+ for v in self.base.lastInvalidations(size):
+ yield v
@synchronized
def lastTransaction(self):
@@ -103,9 +114,6 @@
self.base.registerDB(db)
self.changes.registerDB(db)
- def sortKey(self):
- return self.changes.sortKey()
-
@synchronized
def store(self, oid, serial, data, version, transaction):
assert version==''
@@ -156,7 +164,7 @@
self._transaction = None
self.changes.tpc_finish(transaction)
self._commit_lock.release()
-
+
@synchronized
def tpc_vote(self, transaction):
if self._transaction is not transaction:
Modified: zc.demostorage2/trunk/src/zc/demostorage2/tests.py
===================================================================
--- zc.demostorage2/trunk/src/zc/demostorage2/tests.py 2008-01-23 00:18:06 UTC (rev 83101)
+++ zc.demostorage2/trunk/src/zc/demostorage2/tests.py 2008-01-23 00:42:39 UTC (rev 83102)
@@ -31,7 +31,8 @@
... print self.name, db
... def close(self):
... print self.name, 'closed'
- ... getName = sortKey = getSize = __len__ = None
+ ... getName = sortKey = getSize = __len__ = history = getTid = None
+ ... isReadOnly = tpc_transaction = None
... supportsUndo = undo = undoLog = undoInfo = None
... supportsTransactionalUndo = None
... def new_oid(self):
More information about the Checkins
mailing list