History for StoreMethod
??changed:
-
<pre>
def store(self, oid, serial, p, version, transaction):
if transaction is not self._transaction:
raise !POSExceptionError.StorageTransactionError(self, transaction)
self._lock_acquire()
try:
current = GetCurrent (oid)
newserial = self._serial
if not current:
InsertObject (oid,newserial,"","c",p,len(p),version,"","")
return
if current.serial != serial:
raise !POSExceptionError.ConflictError, (serial, oid)
old_version = current.version
if old_version and old_version != version:
raise !VersionLockError
pre = current.serial
SetStatus (oid, serial, "h")
if version:
if old_version:
nv=current.nv
else:
nv = pre
else:
nv = ''
InsertObject (oid,newserial,pre,"c",p,len(p),version,nv,"")
finally:
self._lock_release()
</pre>