+ final void operationHandOffComplete() {
+ handOffComplete = true;
+ }
+
+ final boolean isOperationHandOffComplete() {
+ return handOffComplete;
+ }
+
+ /**
+ * A TransactionContext that uses operation limiting should return true else false.
+ *
+ * @return true if operation limiting is used, false otherwise
+ */
+ boolean usesOperationLimiting() {
+ return false;
+ }
+
+ abstract void executeDelete(YangInstanceIdentifier path, Boolean havePermit);
+
+ abstract void executeMerge(YangInstanceIdentifier path, NormalizedNode data, Boolean havePermit);
+
+ abstract void executeWrite(YangInstanceIdentifier path, NormalizedNode data, Boolean havePermit);
+
+ abstract <T> void executeRead(AbstractRead<T> readCmd, SettableFuture<T> proxyFuture, Boolean havePermit);
+
+ abstract Future<ActorSelection> readyTransaction(Boolean havePermit,
+ Optional<SortedSet<String>> participatingShardNames);
+
+ abstract Future<Object> directCommit(Boolean havePermit);
+
+ abstract void closeTransaction();