X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-remoterpc-connector%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnector%2Fremoterpc%2FRoutingTableProvider.java;fp=opendaylight%2Fmd-sal%2Fsal-remoterpc-connector%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnector%2Fremoterpc%2FRoutingTableProvider.java;h=cfdf98638d450830f65b04772a9ea14111430a1c;hb=97a4294baa44125d53a7ee2a3646f8a1c8da73e6;hp=0000000000000000000000000000000000000000;hpb=3207207ec5ddd9032bad9d019c9bb88c33cad4f3;p=controller.git diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RoutingTableProvider.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RoutingTableProvider.java new file mode 100644 index 0000000000..cfdf98638d --- /dev/null +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RoutingTableProvider.java @@ -0,0 +1,32 @@ +package org.opendaylight.controller.sal.connector.remoterpc; + +import org.opendaylight.controller.sal.connector.remoterpc.api.RoutingTable; +import org.osgi.framework.BundleContext; +import org.osgi.util.tracker.ServiceTracker; + +import com.google.common.base.Optional; + +public class RoutingTableProvider implements AutoCloseable { + + @SuppressWarnings("rawtypes") + final ServiceTracker tracker; + + + public RoutingTableProvider(BundleContext ctx) { + @SuppressWarnings("rawtypes") + ServiceTracker rawTracker = new ServiceTracker<>(ctx, RoutingTable.class, null); + tracker = rawTracker; + tracker.open(); + } + + public Optional> getRoutingTable() { + @SuppressWarnings("unchecked") + RoutingTable tracked = tracker.getService(); + return Optional.fromNullable(tracked); + } + + @Override + public void close() throws Exception { + tracker.close(); + } +}