*/
package org.opendaylight.openflowplugin.impl.rpc;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
+import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceInitializationPhaseHandler;
import org.opendaylight.openflowplugin.api.openflow.rpc.RpcContext;
public class RpcManagerImpl implements RpcManager {
- private final ProviderContext providerContext;
+ private final RpcProviderRegistry rpcProviderRegistry;
private DeviceInitializationPhaseHandler deviceInitPhaseHandler;
+ private final int maxRequestsQuota;
- public RpcManagerImpl(final ProviderContext providerContext) {
- this.providerContext = providerContext;
+ public RpcManagerImpl(final RpcProviderRegistry rpcProviderRegistry,
+ final int quotaValue) {
+ this.rpcProviderRegistry = rpcProviderRegistry;
+ maxRequestsQuota = quotaValue;
}
@Override
@Override
public void onDeviceContextLevelUp(final DeviceContext deviceContext) {
- final RpcContext rpcContext = new RpcContextImpl(providerContext, deviceContext);
+ final RpcContext rpcContext = new RpcContextImpl(deviceContext.getMessageSpy(), rpcProviderRegistry, deviceContext, maxRequestsQuota);
+ deviceContext.setDeviceDisconnectedHandler(rpcContext);
MdSalRegistratorUtils.registerServices(rpcContext, deviceContext);
// finish device initialization cycle back to DeviceManager
deviceInitPhaseHandler.onDeviceContextLevelUp(deviceContext);