1 package org.opendaylight.groupbasedpolicy.neutron.ovsdb;
3 import static com.google.common.base.Preconditions.checkNotNull;
5 import java.util.ArrayList;
8 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
9 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.EndpointService;
11 import org.osgi.framework.BundleContext;
12 import org.osgi.framework.ServiceRegistration;
14 public class NeutronOvsdb implements AutoCloseable {
16 private final List<ServiceRegistration<?>> registrations = new ArrayList<ServiceRegistration<?>>();
17 private final TerminationPointDataChangeListener tpListener;
18 private final NodeDataChangeListener nodeListener;
19 private final NeutronGbpMapperListener neutronGbpMapperListener;
21 public NeutronOvsdb(DataBroker dataProvider, RpcProviderRegistry rpcProvider, BundleContext context) {
22 checkNotNull(dataProvider);
23 checkNotNull(rpcProvider);
24 checkNotNull(context);
26 EndpointService epService = rpcProvider.getRpcService(EndpointService.class);
27 tpListener = new TerminationPointDataChangeListener(dataProvider, epService);
28 nodeListener = new NodeDataChangeListener(dataProvider);
29 neutronGbpMapperListener = new NeutronGbpMapperListener(dataProvider);
33 * @see java.lang.AutoCloseable#close()
36 public void close() throws Exception {
37 for (ServiceRegistration<?> registration : registrations) {
38 registration.unregister();