FrontPage
»
RelationalStorage
»
BrewingIdeas
»
StoreMethod
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()