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=9e50b5b332babf4bcc033aeea3778fed850681d3;hp=e90d53c69c2947cb7a1a7fa072c3e3fdf1892c0c;hb=19ebaaaa8f6c4286f84379067599e48d20e44c57;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..9e50b5b332 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,43 +8,49 @@ 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; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; 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.getClass().equals(CloseDataChangeListenerRegistration.SERIALIZABLE_CLASS)) { + closeListenerRegistration( + new CloseDataChangeListenerRegistration()); + } + } + + 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().toSerializable(), 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()); - } }