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%2FRegisterChangeListener.java;h=dea085153bbc202f7da357d71f1bfbe1aaaecd27;hb=db4f9d10a8b2ddb46300635b9993c6fffeb9b394;hp=9363a20ca60cb41df648cb4117d82083277a0d20;hpb=5f0488294169c571a33bdb76ff19a3ca3e1e6bb6;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListener.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListener.java index 9363a20ca6..dea085153b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListener.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListener.java @@ -9,17 +9,22 @@ package org.opendaylight.controller.cluster.datastore.messages; import akka.actor.ActorPath; +import akka.actor.ActorSystem; +import org.opendaylight.controller.cluster.datastore.util.InstanceIdentifierUtils; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.controller.protobuff.messages.registration.ListenerRegistrationMessages; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; public class RegisterChangeListener implements SerializableMessage { + public static final Class SERIALIZABLE_CLASS = + ListenerRegistrationMessages.RegisterChangeListener.class; - private final InstanceIdentifier path; + private final YangInstanceIdentifier path; private final ActorPath dataChangeListenerPath; private final AsyncDataBroker.DataChangeScope scope; - public RegisterChangeListener(InstanceIdentifier path, + public RegisterChangeListener(YangInstanceIdentifier path, ActorPath dataChangeListenerPath, AsyncDataBroker.DataChangeScope scope) { this.path = path; @@ -27,7 +32,7 @@ public class RegisterChangeListener implements SerializableMessage { this.scope = scope; } - public InstanceIdentifier getPath() { + public YangInstanceIdentifier getPath() { return path; } @@ -41,7 +46,20 @@ public class RegisterChangeListener implements SerializableMessage { } - @Override public Object toSerializable() { - throw new UnsupportedOperationException("foo"); + @Override + public ListenerRegistrationMessages.RegisterChangeListener toSerializable() { + return ListenerRegistrationMessages.RegisterChangeListener.newBuilder() + .setInstanceIdentifierPath(InstanceIdentifierUtils.toSerializable(path)) + .setDataChangeListenerActorPath(dataChangeListenerPath.toString()) + .setDataChangeScope(scope.ordinal()).build(); } + + public static RegisterChangeListener fromSerializable(ActorSystem actorSystem,Object serializable){ + ListenerRegistrationMessages.RegisterChangeListener o = (ListenerRegistrationMessages.RegisterChangeListener) serializable; + return new RegisterChangeListener(InstanceIdentifierUtils.fromSerializable(o.getInstanceIdentifierPath()), + actorSystem.actorFor(o.getDataChangeListenerActorPath()).path(), + AsyncDataBroker.DataChangeScope.values()[o.getDataChangeScope()]); + } + + }