*/
package org.opendaylight.controller.sal.binding.spi;
+import java.util.Set;
+
import org.opendaylight.yangtools.yang.binding.BaseIdentity;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.RpcImplementation;
import org.opendaylight.yangtools.yang.binding.RpcService;
/**
* Type of RpcService for which router provides routing information
* and route selection.
*/
-public interface RpcRouter<T extends RpcService> {
+public interface RpcRouter<T extends RpcService> extends RpcImplementation{
/**
* Returns a type of RpcService which is served by this instance of router.
*
* @return type of RpcService which is served by this instance of router.
*/
- Class<T> getRpcServiceType();
+ Class<T> getServiceType();
+
+
+ /**
+ * Returns a instance of T which is associated with this router instance
+ * and routes messages based on routing tables.
+ *
+ * @return type of RpcService which is served by this instance of router.
+ */
+ T getInvocationProxy();
/**
* Returns a routing table for particular route context
/**
*
*/
- void setDefaultService();
+ void setDefaultService(T service);
+
+ Set<Class<? extends BaseIdentity>> getContexts();
}