Changes to NextHopManager
[vpnservice.git] / nexthopmgr / nexthopmgr-impl / src / main / java / org / opendaylight / vpnservice / nexthopmgr / NexthopmgrProvider.java
index 57b7a766746b63f4fa92f96a3d7479a0e4d62a35..51494d92efcbffdea25f8bf7a76cf1712d792718 100644 (file)
@@ -8,13 +8,15 @@
 package org.opendaylight.vpnservice.nexthopmgr;
 
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
 import org.opendaylight.vpnservice.nexthopmgr.NexthopManager;
 import org.opendaylight.vpnservice.interfacemgr.interfaces.IInterfaceManager;
 import org.opendaylight.vpnservice.mdsalutil.interfaces.IMdsalApiManager;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.l3nexthop.rev150409.L3nexthopService;
 import org.opendaylight.idmanager.IdManager;
-
+import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -27,6 +29,15 @@ public class NexthopmgrProvider implements BindingAwareProvider, AutoCloseable {
     private IMdsalApiManager mdsalManager;
     private IInterfaceManager interfaceManager;
     private IdManager idManager;
+    private RpcProviderRegistry rpcProviderRegistry;
+
+    public RpcProviderRegistry getRpcProviderRegistry() {
+        return rpcProviderRegistry;
+    }
+
+    public void setRpcProviderRegistry(RpcProviderRegistry rpcProviderRegistry) {
+        this.rpcProviderRegistry = rpcProviderRegistry;
+    }
 
     @Override
     public void onSessionInitiated(ProviderContext session) {
@@ -35,9 +46,11 @@ public class NexthopmgrProvider implements BindingAwareProvider, AutoCloseable {
         vpnIfListener = new VpnInterfaceChangeListener(dbx, nhManager);
         odlIfListener = new OdlInterfaceChangeListener(dbx, nhManager, interfaceManager);
         idManager = new IdManager(dbx);
+        final BindingAwareBroker.RpcRegistration<L3nexthopService> rpcRegistration = getRpcProviderRegistry().addRpcImplementation(L3nexthopService.class, nhManager);
         nhManager.setMdsalManager(mdsalManager);
         nhManager.setInterfaceManager(interfaceManager);
         nhManager.setIdManager(idManager);
+        nhManager.createNexthopPointerPool();
         LOG.info("NexthopmgrProvider Session Initiated");
     }
 
@@ -49,6 +62,10 @@ public class NexthopmgrProvider implements BindingAwareProvider, AutoCloseable {
         this.interfaceManager = interfaceManager;
     }
 
+    public NexthopmgrProvider(RpcProviderRegistry rpcRegistry) {
+        this.rpcProviderRegistry = rpcRegistry;
+    }
+
     @Override
     public void close() throws Exception {
         vpnIfListener.close();