X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fmessages%2FRegisterDataTreeChangeListener.java;h=e091b5bd0ffcb8c99759c53c2628facf0201dfa1;hb=7a38f0591bc527178510d749ae361e317dcc9788;hp=941336e630985379366097906d4e326e93d77c1e;hpb=c389b6dc9c717695f88a83c01a9fc67a1df68aac;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/RegisterDataTreeChangeListener.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/RegisterDataTreeChangeListener.java index 941336e630..e091b5bd0f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/RegisterDataTreeChangeListener.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/RegisterDataTreeChangeListener.java @@ -7,46 +7,69 @@ */ package org.opendaylight.controller.cluster.datastore.messages; +import akka.actor.ActorPath; import akka.actor.ActorRef; import com.google.common.base.Preconditions; import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils; +import org.opendaylight.controller.cluster.datastore.node.utils.stream.SerializationUtils; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; /** - * Request a {@link org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener} registration be made on the shard - * leader. + * Request a {@link org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener} registration be made on the + * shard leader. */ -public final class RegisterDataTreeChangeListener implements Externalizable { +public final class RegisterDataTreeChangeListener implements Externalizable, ListenerRegistrationMessage { private static final long serialVersionUID = 1L; private ActorRef dataTreeChangeListenerPath; private YangInstanceIdentifier path; + private boolean registerOnAllInstances; - public RegisterDataTreeChangeListener(final YangInstanceIdentifier path, final ActorRef dataTreeChangeListenerPath) { + public RegisterDataTreeChangeListener() { + // For Externalizable + } + + public RegisterDataTreeChangeListener(final YangInstanceIdentifier path, final ActorRef dataTreeChangeListenerPath, + final boolean registerOnAllInstances) { this.path = Preconditions.checkNotNull(path); this.dataTreeChangeListenerPath = Preconditions.checkNotNull(dataTreeChangeListenerPath); + this.registerOnAllInstances = registerOnAllInstances; } + @Override public YangInstanceIdentifier getPath() { return path; } - public ActorRef getDataTreeChangeListenerPath() { - return dataTreeChangeListenerPath; + @Override + public ActorPath getListenerActorPath() { + return dataTreeChangeListenerPath.path(); + } + + @Override + public boolean isRegisterOnAllInstances() { + return registerOnAllInstances; } @Override public void writeExternal(final ObjectOutput out) throws IOException { out.writeObject(dataTreeChangeListenerPath); SerializationUtils.serializePath(path, out); + out.writeBoolean(registerOnAllInstances); } @Override public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { dataTreeChangeListenerPath = (ActorRef) in.readObject(); path = SerializationUtils.deserializePath(in); + registerOnAllInstances = in.readBoolean(); + } + + @Override + public String toString() { + return "RegisterDataTreeChangeListener [path=" + path + ", registerOnAllInstances=" + registerOnAllInstances + + ", dataTreeChangeListenerPath=" + dataTreeChangeListenerPath + "]"; } }