Class RemoteTransactionContext


  • public class RemoteTransactionContext
    extends Object
    Redirects front-end transaction operations to a shard for processing. Instances of this class are used when the destination shard is remote to the caller.
    Author:
    Thomas Pantelis
    • Constructor Detail

      • RemoteTransactionContext

        protected RemoteTransactionContext​(org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier identifier,
                                           akka.actor.ActorSelection actor,
                                           ActorUtils actorUtils,
                                           short remoteTransactionVersion,
                                           OperationLimiter limiter)
    • Method Detail

      • getActorUtils

        protected ActorUtils getActorUtils()
      • closeTransaction

        public void closeTransaction()
      • directCommit

        public scala.concurrent.Future<Object> directCommit​(Boolean havePermit)
      • readyTransaction

        public scala.concurrent.Future<akka.actor.ActorSelection> readyTransaction​(Boolean havePermit,
                                                                                   Optional<SortedSet<String>> participatingShardNames)
      • transformReadyReply

        protected scala.concurrent.Future<akka.actor.ActorSelection> transformReadyReply​(scala.concurrent.Future<Object> readyReplyFuture)
      • sendBatchedModifications

        protected scala.concurrent.Future<Object> sendBatchedModifications()
      • sendBatchedModifications

        protected scala.concurrent.Future<Object> sendBatchedModifications​(boolean ready,
                                                                           boolean doCommitOnReady,
                                                                           Optional<SortedSet<String>> participatingShardNames)
      • executeDelete

        public void executeDelete​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path,
                                  Boolean havePermit)
      • executeMerge

        public void executeMerge​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path,
                                 org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode<?,​?> data,
                                 Boolean havePermit)
      • executeWrite

        public void executeWrite​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path,
                                 org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode<?,​?> data,
                                 Boolean havePermit)
      • executeRead

        public <T> void executeRead​(AbstractRead<T> readCmd,
                                    com.google.common.util.concurrent.SettableFuture<T> returnFuture,
                                    Boolean havePermit)
      • usesOperationLimiting

        public boolean usesOperationLimiting()
      • getIdentifier

        protected final @NonNull org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier getIdentifier()
        Get the transaction identifier associated with this context.
        Returns:
        Transaction identifier.
      • incrementModificationCount

        protected final void incrementModificationCount()
      • logModificationCount

        protected final void logModificationCount()
      • operationHandOffComplete

        public final void operationHandOffComplete()
      • isOperationHandOffComplete

        protected boolean isOperationHandOffComplete()
      • getTransactionVersion

        public short getTransactionVersion()