Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Move MessageTrackerTest
[controller.git]
/
opendaylight
/
md-sal
/
sal-distributed-datastore
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
cluster
/
datastore
/
ShardDataTreeCohort.java
diff --git
a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeCohort.java
b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeCohort.java
index 213e36a570ce1c445e11f8d6e175b37abf9a7388..0a3a6ae177d7827cf2afb6441f3f6006a9209795 100644
(file)
--- a/
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeCohort.java
+++ b/
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeCohort.java
@@
-8,22
+8,53
@@
package org.opendaylight.controller.cluster.datastore;
import com.google.common.annotations.VisibleForTesting;
package org.opendaylight.controller.cluster.datastore;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.primitives.UnsignedLong;
+import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListenableFuture;
+import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
+import org.opendaylight.yangtools.concepts.Identifiable;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
+
+public abstract class ShardDataTreeCohort implements Identifiable<TransactionIdentifier> {
+ public enum State {
+ READY,
+ CAN_COMMIT_PENDING,
+ CAN_COMMIT_COMPLETE,
+ PRE_COMMIT_PENDING,
+ PRE_COMMIT_COMPLETE,
+ COMMIT_PENDING,
+
+ ABORTED,
+ COMMITTED,
+ FAILED,
+ }
-public abstract class ShardDataTreeCohort {
ShardDataTreeCohort() {
// Prevent foreign instantiation
}
ShardDataTreeCohort() {
// Prevent foreign instantiation
}
+ // FIXME: This leaks internal state generated in preCommit,
+ // should be result of canCommit
abstract DataTreeCandidateTip getCandidate();
abstract DataTreeCandidateTip getCandidate();
+ abstract DataTreeModification getDataTreeModification();
+
+ // FIXME: Should return rebased DataTreeCandidateTip
@VisibleForTesting
@VisibleForTesting
- public abstract ListenableFuture<Boolean> canCommit();
+ public abstract void canCommit(FutureCallback<Void> callback);
+
@VisibleForTesting
@VisibleForTesting
- public abstract ListenableFuture<Void> preCommit();
+ public abstract void preCommit(FutureCallback<DataTreeCandidate> callback);
+
@VisibleForTesting
public abstract ListenableFuture<Void> abort();
@VisibleForTesting
public abstract ListenableFuture<Void> abort();
+
@VisibleForTesting
@VisibleForTesting
- public abstract ListenableFuture<Void> commit();
+ public abstract void commit(FutureCallback<UnsignedLong> callback);
+
+ public abstract boolean isFailed();
+
+ public abstract State getState();
}
}