You are not logged in Log in Join
You are here: Home » Members » jim » ZODB » StoreMethod

Log in
Name

Password

 
 
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()