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%2Fmessages%2FRegisterDataTreeChangeListener.java;h=cbe9dbf5d041782135102c516d60c8b1f355b63a;hp=941336e630985379366097906d4e326e93d77c1e;hb=c9587253579a7b34f4c397a254f83890d4d3ba03;hpb=59e84273be97b1115fb3fb0f06364b7491a40385 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..cbe9dbf5d0 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,68 @@ */ package org.opendaylight.controller.cluster.datastore.messages; +import static java.util.Objects.requireNonNull; + +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 { private static final long serialVersionUID = 1L; + private ActorRef dataTreeChangeListenerPath; private YangInstanceIdentifier path; + private boolean registerOnAllInstances; - public RegisterDataTreeChangeListener(final YangInstanceIdentifier path, final ActorRef dataTreeChangeListenerPath) { - this.path = Preconditions.checkNotNull(path); - this.dataTreeChangeListenerPath = Preconditions.checkNotNull(dataTreeChangeListenerPath); + public RegisterDataTreeChangeListener() { + // For Externalizable + } + + public RegisterDataTreeChangeListener(final YangInstanceIdentifier path, final ActorRef dataTreeChangeListenerPath, + final boolean registerOnAllInstances) { + this.path = requireNonNull(path); + this.dataTreeChangeListenerPath = requireNonNull(dataTreeChangeListenerPath); + this.registerOnAllInstances = registerOnAllInstances; } public YangInstanceIdentifier getPath() { return path; } - public ActorRef getDataTreeChangeListenerPath() { - return dataTreeChangeListenerPath; + public ActorPath getListenerActorPath() { + return dataTreeChangeListenerPath.path(); + } + + public boolean isRegisterOnAllInstances() { + return registerOnAllInstances; } @Override public void writeExternal(final ObjectOutput out) throws IOException { out.writeObject(dataTreeChangeListenerPath); - SerializationUtils.serializePath(path, out); + SerializationUtils.writePath(out, path); + out.writeBoolean(registerOnAllInstances); } @Override public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { dataTreeChangeListenerPath = (ActorRef) in.readObject(); - path = SerializationUtils.deserializePath(in); + path = SerializationUtils.readPath(in); + registerOnAllInstances = in.readBoolean(); + } + + @Override + public String toString() { + return "RegisterDataTreeChangeListener [path=" + path + ", registerOnAllInstances=" + registerOnAllInstances + + ", dataTreeChangeListenerPath=" + dataTreeChangeListenerPath + "]"; } }