package org.multiverse.stms.gamma.transactions;
import org.multiverse.api.*;
import org.multiverse.api.TxnFactoryBuilder;
import org.multiverse.api.lifecycle.TxnListener;
import org.multiverse.stms.gamma.GammaTxnExecutor;
/**
* A {@link org.multiverse.api.TxnFactoryBuilder} tailored for the {@link org.multiverse.stms.gamma.GammaStm}.
*
* @author Peter Veentjer.
*/
public interface GammaTxnFactoryBuilder extends TxnFactoryBuilder {
@Override
GammaTxnConfig getConfig();
GammaTxnFactoryBuilder setFat();
@Override
GammaTxnFactoryBuilder setControlFlowErrorsReused(boolean reused);
@Override
GammaTxnFactoryBuilder setReadLockMode(LockMode lockMode);
@Override
GammaTxnFactoryBuilder setWriteLockMode(LockMode lockMode);
@Override
GammaTxnFactoryBuilder setFamilyName(String familyName);
@Override
GammaTxnFactoryBuilder setPropagationLevel(PropagationLevel propagationLevel);
@Override
GammaTxnFactoryBuilder addPermanentListener(TxnListener listener);
@Override
GammaTxnFactoryBuilder setTraceLevel(TraceLevel traceLevel);
@Override
GammaTxnFactoryBuilder setTimeoutNs(long timeoutNs);
@Override
GammaTxnFactoryBuilder setInterruptible(boolean interruptible);
@Override
GammaTxnFactoryBuilder setBackoffPolicy(BackoffPolicy backoffPolicy);
@Override
GammaTxnFactoryBuilder setDirtyCheckEnabled(boolean dirtyCheckEnabled);
@Override
GammaTxnFactoryBuilder setSpinCount(int spinCount);
@Override
GammaTxnFactoryBuilder setReadonly(boolean readonly);
@Override
GammaTxnFactoryBuilder setReadTrackingEnabled(boolean enabled);
@Override
GammaTxnFactoryBuilder setSpeculative(boolean enabled);
@Override
GammaTxnFactoryBuilder setMaxRetries(int maxRetries);
@Override
GammaTxnFactoryBuilder setIsolationLevel(IsolationLevel isolationLevel);
@Override
GammaTxnFactoryBuilder setBlockingAllowed(boolean blockingAllowed);
@Override
GammaTxnFactory newTransactionFactory();
@Override
GammaTxnExecutor newTxnExecutor();
}