Merge "Increase default negotiation timeout for netconf server to 30s"
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / RegisterChangeListenerReply.java
index ae8bbbd75adf2717a3a50d579bd7f179a31841b5..a2f04851eb72a8b1f6eb2d99cc98248ec0a11d40 100644 (file)
@@ -9,15 +9,34 @@
 package org.opendaylight.controller.cluster.datastore.messages;
 
 import akka.actor.ActorPath;
+import akka.actor.ActorRef;
+import akka.actor.ActorSystem;
+import akka.serialization.Serialization;
+import org.opendaylight.controller.protobuff.messages.registration.ListenerRegistrationMessages;
 
-public class RegisterChangeListenerReply {
-  private final ActorPath listenerRegistrationPath;
+public class RegisterChangeListenerReply implements SerializableMessage{
+  public static final Class<ListenerRegistrationMessages.RegisterChangeListenerReply> SERIALIZABLE_CLASS =
+          ListenerRegistrationMessages.RegisterChangeListenerReply.class;
+  private final ActorRef listenerRegistration;
 
-  public RegisterChangeListenerReply(ActorPath listenerRegistrationPath) {
-    this.listenerRegistrationPath = listenerRegistrationPath;
+  public RegisterChangeListenerReply(final ActorRef listenerRegistration) {
+    this.listenerRegistration = listenerRegistration;
   }
 
   public ActorPath getListenerRegistrationPath() {
-    return listenerRegistrationPath;
+    return listenerRegistration.path();
+  }
+
+  @Override
+  public ListenerRegistrationMessages.RegisterChangeListenerReply toSerializable() {
+    return ListenerRegistrationMessages.RegisterChangeListenerReply.newBuilder()
+            .setListenerRegistrationPath(Serialization.serializedActorPath(listenerRegistration)).build();
+  }
+
+  public static RegisterChangeListenerReply fromSerializable(final ActorSystem actorSystem,final Object serializable){
+    ListenerRegistrationMessages.RegisterChangeListenerReply o = (ListenerRegistrationMessages.RegisterChangeListenerReply) serializable;
+    return new RegisterChangeListenerReply(
+        actorSystem.provider().resolveActorRef(o.getListenerRegistrationPath())
+        );
   }
 }