1 package org.opendaylight.controller.sal.dom.broker
3 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession
4 import org.opendaylight.controller.sal.core.api.Provider
5 import org.opendaylight.controller.sal.core.api.RpcImplementation
6 import org.opendaylight.yangtools.yang.common.QName
7 import org.osgi.framework.BundleContext
8 import org.opendaylight.controller.sal.core.api.Broker.RpcRegistration
9 import org.opendaylight.controller.sal.core.api.RpcRegistrationListener
10 import org.opendaylight.yangtools.concepts.Registration
13 import java.util.HashSet
15 class ProviderContextImpl extends ConsumerContextImpl implements ProviderSession {
18 private val Provider provider;
20 private val Set<Registration<?>> registrations = new HashSet();
22 new(Provider provider, BundleContext ctx) {
24 this._provider = provider;
27 override addRpcImplementation(QName rpcType, RpcImplementation implementation) throws IllegalArgumentException {
28 val origReg = broker.router.addRpcImplementation(rpcType, implementation);
29 val newReg = new RpcRegistrationWrapper(origReg);
30 registrations.add(newReg);
34 protected def removeRpcImplementation(RpcRegistrationWrapper implToRemove) throws IllegalArgumentException {
35 registrations.remove(implToRemove);
40 for (reg : registrations) {
46 override addMountedRpcImplementation(QName rpcType, RpcImplementation implementation) {
47 throw new UnsupportedOperationException("TODO: auto-generated method stub")
50 override addRoutedRpcImplementation(QName rpcType, RpcImplementation implementation) {
51 throw new UnsupportedOperationException("TODO: auto-generated method stub")
54 override getSupportedRpcs() {
55 broker.router.supportedRpcs;
58 override addRpcRegistrationListener(RpcRegistrationListener listener) {
59 broker.router.addRpcRegistrationListener(listener);
63 class RpcRegistrationWrapper implements RpcRegistration {
67 val RpcRegistration delegate
69 new(RpcRegistration delegate) {
73 override getInstance() {