Adding routed RPC support in Remote RPC Router
[controller.git] / opendaylight / md-sal / sal-dom-api / src / main / java / org / opendaylight / controller / sal / core / api / RpcProvisionRegistry.java
index faac6501c93c56a2bfbe7be90373faaead36e662..f43dcd6b43565692136eda0eecac5354b29681ac 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 package org.opendaylight.controller.sal.core.api;
 
 import org.opendaylight.controller.md.sal.common.api.routing.RouteChangePublisher;
@@ -7,7 +14,7 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
 
-public interface RpcProvisionRegistry extends BrokerService, RouteChangePublisher<RpcRoutingContext, InstanceIdentifier> {
+public interface RpcProvisionRegistry extends RpcImplementation, BrokerService, RouteChangePublisher<RpcRoutingContext, InstanceIdentifier> {
 
     /**
      * Registers an implementation of the rpc.
@@ -35,4 +42,13 @@ public interface RpcProvisionRegistry extends BrokerService, RouteChangePublishe
     ListenerRegistration<RpcRegistrationListener> addRpcRegistrationListener(RpcRegistrationListener listener);
 
     RoutedRpcRegistration addRoutedRpcImplementation(QName rpcType, RpcImplementation implementation);
+
+  /**
+   * Sets this RoutedRpc Implementation as a delegate rpc provider and will be asked to invoke rpc if the
+   * current provider can't service the rpc request
+   *
+   * @param defaultImplementation
+   *              Provider's implementation of RPC functionality
+   */
+    public void setRoutedRpcDefaultDelegate(RoutedRpcDefaultImplementation defaultImplementation);
 }