Commit 49389410 authored by Jim Fulton's avatar Jim Fulton

Added logic to support conflict resolution.

parent 4fe18710
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""Network ZODB storage client """Network ZODB storage client
""" """
__version__='$Revision: 1.26 $'[11:-2] __version__='$Revision: 1.27 $'[11:-2]
import struct, time, os, socket, string, Sync, zrpc, ClientCache import struct, time, os, socket, string, Sync, zrpc, ClientCache
import tempfile, Invalidator, ExtensionClass, thread import tempfile, Invalidator, ExtensionClass, thread
...@@ -96,6 +96,9 @@ from ZODB import POSException, BaseStorage ...@@ -96,6 +96,9 @@ from ZODB import POSException, BaseStorage
from ZODB.TimeStamp import TimeStamp from ZODB.TimeStamp import TimeStamp
from zLOG import LOG, PROBLEM, INFO from zLOG import LOG, PROBLEM, INFO
try: from ZODB.ConflictResolution import ResolvedSerial
except: ResolvedSerial='rs'
TupleType=type(()) TupleType=type(())
class ClientStorageError(POSException.StorageError): class ClientStorageError(POSException.StorageError):
...@@ -517,7 +520,10 @@ class ClientStorage(ExtensionClass.Base, BaseStorage.BaseStorage): ...@@ -517,7 +520,10 @@ class ClientStorage(ExtensionClass.Base, BaseStorage.BaseStorage):
"Unexpected end of file in client storage " "Unexpected end of file in client storage "
"temporary file." "temporary file."
) )
update(oid, s, v, p) if s==ResolvedSerial:
cache.invalidate(oid, v)
else:
update(oid, s, v, p)
i=i+14+vlen+dlen i=i+14+vlen+dlen
seek(0) seek(0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment