X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FLeaderLocalDelegateFactory.java;h=d33cebbebc2f7680dff2097f8b3ab3745f861c26;hp=891c0bf6d426c5a65690e55772bb8d82c9f8c0b3;hb=c6c9b43923bbe8bc6d586ce09649324949e6b092;hpb=66d39ecc3effd52c96c7a772a46612008e34fbc9 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderLocalDelegateFactory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderLocalDelegateFactory.java index 891c0bf6d4..d33cebbebc 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderLocalDelegateFactory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderLocalDelegateFactory.java @@ -7,6 +7,12 @@ */ package org.opendaylight.controller.cluster.datastore; +import akka.actor.ActorPath; +import akka.actor.ActorRef; +import akka.actor.ActorSelection; +import akka.actor.Props; +import com.google.common.base.Preconditions; + /** * Base class for factories instantiating delegates which are local to the * shard leader. @@ -15,6 +21,40 @@ package org.opendaylight.controller.cluster.datastore; * message type */ abstract class LeaderLocalDelegateFactory extends DelegateFactory { + private final Shard shard; + + protected LeaderLocalDelegateFactory(final Shard shard) { + this.shard = Preconditions.checkNotNull(shard); + } + + protected final ActorRef getSelf() { + return shard.getSelf(); + } + + protected final Shard getShard() { + return shard; + } + + protected final String persistenceId() { + return shard.persistenceId(); + } + + protected final void tellSender(final Object message) { + shard.getSender().tell(message, getSelf()); + } + + protected final ActorRef createActor(final Props props) { + return shard.getContext().actorOf(props); + } + + protected final ActorSelection selectActor(ActorRef ref) { + return shard.getContext().system().actorSelection(ref.path()); + } + + protected final ActorSelection selectActor(ActorPath path) { + return shard.getContext().system().actorSelection(path); + } + /** * Invoked whenever the local shard's leadership role changes. *