1 package org.opendaylight.controller.sal.binding.api;
3 import org.opendaylight.controller.md.sal.common.api.routing.RouteChangePublisher;
4 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RoutedRpcRegistration;
5 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration;
6 import org.opendaylight.controller.sal.binding.api.rpc.RpcContextIdentifier;
7 import org.opendaylight.yangtools.concepts.ListenerRegistration;
8 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
9 import org.opendaylight.yangtools.yang.binding.RpcService;
12 * Interface defining provider's access to the Rpc Registry which could be used
13 * to register their implementations of service to the MD-SAL.
18 public interface RpcProviderRegistry extends //
19 RpcConsumerRegistry, //
20 RouteChangePublisher<RpcContextIdentifier, InstanceIdentifier<?>> {
22 * Registers an global RpcService implementation.
25 * @param implementation
28 <T extends RpcService> RpcRegistration<T> addRpcImplementation(Class<T> type, T implementation)
29 throws IllegalStateException;
33 * Register an Routed RpcService where routing is determined on annotated
34 * (in YANG model) context-reference and value of annotated leaf.
37 * Type of RpcService, use generated interface class, not your
39 * @param implementation
40 * Implementation of RpcService
41 * @return Registration object for routed Rpc which could be used to close
44 * @throws IllegalStateException
46 <T extends RpcService> RoutedRpcRegistration<T> addRoutedRpcImplementation(Class<T> type, T implementation)
47 throws IllegalStateException;