Enabling Data Change Notifications for all nodes in cluster.
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / RegisterChangeListener.java
index 1d8edece1a5161137daab2abb03e6b968a920615..f7a51a93ffe173b755cdd5bd2d59ccb5cacb19ef 100644 (file)
@@ -24,14 +24,16 @@ public class RegisterChangeListener implements SerializableMessage {
     private final YangInstanceIdentifier path;
     private final ActorRef dataChangeListener;
     private final AsyncDataBroker.DataChangeScope scope;
+    private final boolean registerOnAllInstances;
 
 
     public RegisterChangeListener(YangInstanceIdentifier path,
         ActorRef dataChangeListener,
-        AsyncDataBroker.DataChangeScope scope) {
+        AsyncDataBroker.DataChangeScope scope, boolean registerOnAllInstances) {
         this.path = path;
         this.dataChangeListener = dataChangeListener;
         this.scope = scope;
+        this.registerOnAllInstances = registerOnAllInstances;
     }
 
     public YangInstanceIdentifier getPath() {
@@ -47,20 +49,23 @@ public class RegisterChangeListener implements SerializableMessage {
         return dataChangeListener.path();
     }
 
+    public boolean isRegisterOnAllInstances() {
+        return registerOnAllInstances;
+    }
 
     @Override
     public ListenerRegistrationMessages.RegisterChangeListener toSerializable() {
       return ListenerRegistrationMessages.RegisterChangeListener.newBuilder()
           .setInstanceIdentifierPath(InstanceIdentifierUtils.toSerializable(path))
           .setDataChangeListenerActorPath(Serialization.serializedActorPath(dataChangeListener))
-          .setDataChangeScope(scope.ordinal()).build();
+          .setDataChangeScope(scope.ordinal()).setRegisterOnAllInstances(registerOnAllInstances).build();
     }
 
   public static RegisterChangeListener fromSerializable(ActorSystem actorSystem, Object serializable){
     ListenerRegistrationMessages.RegisterChangeListener o = (ListenerRegistrationMessages.RegisterChangeListener) serializable;
     return new RegisterChangeListener(InstanceIdentifierUtils.fromSerializable(o.getInstanceIdentifierPath()),
                                                 actorSystem.provider().resolveActorRef(o.getDataChangeListenerActorPath()),
-                                              AsyncDataBroker.DataChangeScope.values()[o.getDataChangeScope()]);
+                                              AsyncDataBroker.DataChangeScope.values()[o.getDataChangeScope()], o.getRegisterOnAllInstances());
   }