package com.sleepycat.je.txn;
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.TransactionConfig;
import com.sleepycat.je.dbi.EnvironmentImpl;
import de.ovgu.cide.jakutil.*;
/**
* An AutoTxn is one that's created by use of the AutoCommit property.
*/
public class AutoTxn extends Txn {
public AutoTxn( EnvironmentImpl env, TransactionConfig config) throws DatabaseException {
super(env,config);
}
/**
* AutoTxns abort or commit at the end of the operation
*/
public void operationEnd( boolean operationOK) throws DatabaseException {
if (operationOK) {
commit();
}
else {
abort(false);
}
}
/**
* AutoTxns abort or commit at the end of the operation
*/
public void operationEnd() throws DatabaseException {
operationEnd(true);
}
/**
* Transfer any handle locks to the db handle on success.
* On failure, leave it with this txn, the handle lock will
* be released at abort and the handle marked invalid.
*/
public void setHandleLockOwner( boolean operationOK, Database dbHandle, boolean dbIsClosing) throws DatabaseException {
if (operationOK) {
if (!dbIsClosing) {
transferHandleLockToHandle(dbHandle);
}
unregisterHandle(dbHandle);
}
}
}