package org.opendaylight.controller.cluster.datastore;
import com.google.common.base.Preconditions;
+import com.google.common.base.Ticker;
import org.opendaylight.controller.cluster.access.commands.DeadTransactionException;
import org.opendaylight.controller.cluster.access.commands.LocalHistorySuccess;
import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier;
private Long lastSeenTransaction;
private State state = State.OPEN;
- LocalFrontendHistory(final String persistenceId, final ShardDataTreeTransactionChain chain) {
- super(persistenceId);
+ LocalFrontendHistory(final String persistenceId, final Ticker ticker, final ShardDataTreeTransactionChain chain) {
+ super(persistenceId, ticker);
this.chain = Preconditions.checkNotNull(chain);
}
return chain.getIdentifier();
}
+ @Override
+ FrontendTransaction createOpenSnapshot(final TransactionIdentifier id) throws RequestException {
+ checkDeadTransaction(id);
+ lastSeenTransaction = id.getTransactionId();
+ return FrontendReadOnlyTransaction.create(this, chain.newReadOnlyTransaction(id));
+ }
+
@Override
FrontendTransaction createOpenTransaction(final TransactionIdentifier id) throws RequestException {
checkDeadTransaction(id);
lastSeenTransaction = id.getTransactionId();
- return FrontendTransaction.createOpen(this, chain.newReadWriteTransaction(id));
+ return FrontendReadWriteTransaction.createOpen(this, chain.newReadWriteTransaction(id));
}
@Override
throws RequestException {
checkDeadTransaction(id);
lastSeenTransaction = id.getTransactionId();
- return FrontendTransaction.createReady(this, id, mod);
+ return FrontendReadWriteTransaction.createReady(this, id, mod);
}
@Override
return chain.createReadyCohort(id, mod);
}
- LocalHistorySuccess destroy(final long sequence) throws RequestException {
+ LocalHistorySuccess destroy(final long sequence, final long now) throws RequestException {
if (state != State.CLOSED) {
LOG.debug("{}: closing history {}", persistenceId(), getIdentifier());