package org.opendaylight.protocol.bgp.rib.impl.config;
-import static java.util.Objects.requireNonNull;
import static org.opendaylight.protocol.bgp.rib.impl.config.OpenConfigMappingUtil.getAfiSafiWithDefault;
import static org.opendaylight.protocol.bgp.rib.impl.config.OpenConfigMappingUtil.getClusterIdentifier;
import static org.opendaylight.protocol.bgp.rib.impl.config.OpenConfigMappingUtil.toTableTypes;
import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory;
import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
-import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
-import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
-import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
import org.opendaylight.protocol.bgp.mode.api.PathSelectionMode;
import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.rib.impl.RIBImpl;
private RIBImpl ribImpl;
private ServiceRegistration<?> serviceRegistration;
private ListenerRegistration<SchemaContextListener> schemaContextRegistration;
- private final ClusterSingletonServiceProvider provider;
private List<AfiSafi> afiSafi;
private AsNumber asNumber;
private Ipv4Address routerId;
private ClusterIdentifier clusterId;
- public RibImpl(final ClusterSingletonServiceProvider provider, final RIBExtensionConsumerContext contextProvider,
- final BGPDispatcher dispatcher, final BindingCodecTreeFactory codecTreeFactory, final DOMDataBroker domBroker,
+ public RibImpl(final RIBExtensionConsumerContext contextProvider, final BGPDispatcher dispatcher,
+ final BindingCodecTreeFactory codecTreeFactory, final DOMDataBroker domBroker,
final DOMSchemaService domSchemaService) {
- this.provider = requireNonNull(provider);
this.extensions = contextProvider;
this.dispatcher = dispatcher;
this.codecTreeFactory = codecTreeFactory;
return this.ribImpl.getService();
}
- public ListenableFuture<Void> closeServiceInstance() {
+ ListenableFuture<Void> closeServiceInstance() {
if (this.ribImpl != null) {
return this.ribImpl.closeServiceInstance();
}
return this.ribImpl.getLocalTablesKeys();
}
- @Override
- public ServiceGroupIdentifier getRibIServiceGroupIdentifier() {
- return this.ribImpl.getRibIServiceGroupIdentifier();
- }
-
@Override
public String toString() {
return this.ribImpl != null ? this.ribImpl.toString() : null;
.stream()
.collect(Collectors.toMap(entry ->
new TablesKey(entry.getKey().getAfi(), entry.getKey().getSafi()), Map.Entry::getValue));
- return new RIBImpl(this.provider,
+ return new RIBImpl(
new RibId(bgpInstanceName),
this.asNumber,
new BgpId(this.routerId),
this.extensions.getClassLoadingStrategy());
}
- @Override
- public ClusterSingletonServiceRegistration registerClusterSingletonService(
- final ClusterSingletonService clusterSingletonService) {
- return this.ribImpl.registerClusterSingletonService(clusterSingletonService);
- }
-
@Override
public BGPRIBState getRIBState() {
return this.ribImpl.getRIBState();
}
+
+ public void instantiateServiceInstance() {
+ if (this.ribImpl != null) {
+ this.ribImpl.instantiateServiceInstance();
+ }
+ }
}