public abstract class AbstractTopologyBuilder<T extends Route> extends Object implements org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener<T>, TopologyReference, org.opendaylight.mdsal.binding.api.TransactionChainListener
Modifier and Type | Field and Description |
---|---|
protected @GuardedBy(value="this") int |
listenerScheduledRestartEnforceCounter |
protected @GuardedBy(value="this") long |
listenerScheduledRestartTime |
Modifier | Constructor and Description |
---|---|
protected |
AbstractTopologyBuilder(org.opendaylight.mdsal.binding.api.DataBroker dataProvider,
RibReference locRibReference,
org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId topologyId,
org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.TopologyTypes types,
Class<? extends AddressFamily> afi,
Class<? extends SubsequentAddressFamily> safi) |
protected |
AbstractTopologyBuilder(org.opendaylight.mdsal.binding.api.DataBroker dataProvider,
RibReference locRibReference,
org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId topologyId,
org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.TopologyTypes types,
Class<? extends AddressFamily> afi,
Class<? extends SubsequentAddressFamily> safi,
long listenerResetLimitInMillsec,
int listenerResetEnforceCounter) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
clearTopology() |
com.google.common.util.concurrent.FluentFuture<? extends org.opendaylight.mdsal.common.api.CommitInfo> |
close() |
protected abstract void |
createObject(org.opendaylight.mdsal.binding.api.ReadWriteTransaction trans,
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> id,
T value) |
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology> |
getInstanceIdentifier()
Returns the InstanceIdentifier of the object.
|
protected abstract org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> |
getRouteWildcard(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Tables> tablesId) |
void |
onDataTreeChanged(Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> changes) |
void |
onTransactionChainFailed(org.opendaylight.mdsal.binding.api.TransactionChain transactionChain,
org.opendaylight.mdsal.binding.api.Transaction transaction,
Throwable cause) |
void |
onTransactionChainSuccessful(org.opendaylight.mdsal.binding.api.TransactionChain transactionChain) |
protected abstract void |
removeObject(org.opendaylight.mdsal.binding.api.ReadWriteTransaction trans,
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> id,
T value) |
protected void |
resetListener()
Reset the data change listener to its initial status.
|
protected void |
resetTransactionChain()
Reset the transaction chain only so that the PingPong transaction chain will become usable again.
|
protected boolean |
restartTransactionChainOnDemand()
There are a few reasons we want to schedule a listener restart in a delayed manner:
1.
|
protected void |
routeChanged(org.opendaylight.mdsal.binding.api.DataTreeModification<T> change,
org.opendaylight.mdsal.binding.api.ReadWriteTransaction trans) |
protected void |
scheduleListenerRestart() |
void |
start() |
protected @GuardedBy(value="this") long listenerScheduledRestartTime
protected @GuardedBy(value="this") int listenerScheduledRestartEnforceCounter
protected AbstractTopologyBuilder(org.opendaylight.mdsal.binding.api.DataBroker dataProvider, RibReference locRibReference, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId topologyId, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.TopologyTypes types, Class<? extends AddressFamily> afi, Class<? extends SubsequentAddressFamily> safi, long listenerResetLimitInMillsec, int listenerResetEnforceCounter)
protected AbstractTopologyBuilder(org.opendaylight.mdsal.binding.api.DataBroker dataProvider, RibReference locRibReference, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId topologyId, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.TopologyTypes types, Class<? extends AddressFamily> afi, Class<? extends SubsequentAddressFamily> safi)
public final void start()
protected abstract org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> getRouteWildcard(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Tables> tablesId)
protected abstract void createObject(org.opendaylight.mdsal.binding.api.ReadWriteTransaction trans, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> id, T value)
protected abstract void removeObject(org.opendaylight.mdsal.binding.api.ReadWriteTransaction trans, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> id, T value)
protected abstract void clearTopology()
public final org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology> getInstanceIdentifier()
InstanceReference
getInstanceIdentifier
in interface InstanceReference<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology>
public final com.google.common.util.concurrent.FluentFuture<? extends org.opendaylight.mdsal.common.api.CommitInfo> close()
public void onDataTreeChanged(Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> changes)
protected void routeChanged(org.opendaylight.mdsal.binding.api.DataTreeModification<T> change, org.opendaylight.mdsal.binding.api.ReadWriteTransaction trans)
protected void resetListener()
protected void resetTransactionChain()
protected boolean restartTransactionChainOnDemand()
protected void scheduleListenerRestart()
public final void onTransactionChainFailed(org.opendaylight.mdsal.binding.api.TransactionChain transactionChain, org.opendaylight.mdsal.binding.api.Transaction transaction, Throwable cause)
onTransactionChainFailed
in interface org.opendaylight.mdsal.binding.api.TransactionChainListener
public final void onTransactionChainSuccessful(org.opendaylight.mdsal.binding.api.TransactionChain transactionChain)
onTransactionChainSuccessful
in interface org.opendaylight.mdsal.binding.api.TransactionChainListener
Copyright © 2020 OpenDaylight. All rights reserved.