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%2FDataChangeListenerRegistration.java;h=dca97354876812601d69c6bc9764779608710d09;hp=e90d53c69c2947cb7a1a7fa072c3e3fdf1892c0c;hb=996ab3e41386da6b27cf21f6464ef1e55363e1ca;hpb=b2e6c299fad844633c8b40a2e180780f5774a4ae diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistration.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistration.java index e90d53c69c..dca9735487 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistration.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistration.java @@ -8,8 +8,8 @@ package org.opendaylight.controller.cluster.datastore; +import akka.actor.PoisonPill; import akka.actor.Props; -import akka.actor.UntypedActor; import akka.japi.Creator; import org.opendaylight.controller.cluster.datastore.messages.CloseDataChangeListenerRegistration; import org.opendaylight.controller.cluster.datastore.messages.CloseDataChangeListenerRegistrationReply; @@ -17,34 +17,40 @@ import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListene import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -public class DataChangeListenerRegistration extends UntypedActor{ +public class DataChangeListenerRegistration extends AbstractUntypedActor { - private final org.opendaylight.yangtools.concepts.ListenerRegistration>> registration; + private final org.opendaylight.yangtools.concepts.ListenerRegistration>> + registration; - public DataChangeListenerRegistration( - org.opendaylight.yangtools.concepts.ListenerRegistration>> registration) { - this.registration = registration; - } + public DataChangeListenerRegistration( + org.opendaylight.yangtools.concepts.ListenerRegistration>> registration) { + this.registration = registration; + } + + @Override + public void handleReceive(Object message) throws Exception { + if (message instanceof CloseDataChangeListenerRegistration) { + closeListenerRegistration( + (CloseDataChangeListenerRegistration) message); + } + } + + public static Props props( + final org.opendaylight.yangtools.concepts.ListenerRegistration>> registration) { + return Props.create(new Creator() { + + @Override + public DataChangeListenerRegistration create() throws Exception { + return new DataChangeListenerRegistration(registration); + } + }); + } - @Override - public void onReceive(Object message) throws Exception { - if(message instanceof CloseDataChangeListenerRegistration){ - closeListenerRegistration((CloseDataChangeListenerRegistration) message); + private void closeListenerRegistration( + CloseDataChangeListenerRegistration message) { + registration.close(); + getSender() + .tell(new CloseDataChangeListenerRegistrationReply(), getSelf()); + getSelf().tell(PoisonPill.getInstance(), getSelf()); } - } - - public static Props props(final org.opendaylight.yangtools.concepts.ListenerRegistration>> registration){ - return Props.create(new Creator(){ - - @Override - public DataChangeListenerRegistration create() throws Exception { - return new DataChangeListenerRegistration(registration); - } - }); - } - - private void closeListenerRegistration(CloseDataChangeListenerRegistration message){ - registration.close(); - getSender().tell(new CloseDataChangeListenerRegistrationReply(), getSelf()); - } }