@Beta public class ConcurrentDOMDataBroker extends AbstractDOMTransactionFactory<DOMStore>
AsyncDataBroker.DataChangeScope
Constructor and Description |
---|
ConcurrentDOMDataBroker(Map<LogicalDatastoreType,DOMStore> datastores,
Executor listenableFutureExecutor) |
ConcurrentDOMDataBroker(Map<LogicalDatastoreType,DOMStore> datastores,
Executor listenableFutureExecutor,
org.opendaylight.yangtools.util.DurationStatisticsTracker commitStatsTracker) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
DOMTransactionChain |
createTransactionChain(TransactionChainListener listener)
Create a new transaction chain.
|
org.opendaylight.yangtools.util.DurationStatisticsTracker |
getCommitStatsTracker() |
Map<Class<? extends DOMDataBrokerExtension>,DOMDataBrokerExtension> |
getSupportedExtensions()
Return a map of currently-supported extensions, along with accessor services
which provide access to the specific functionality bound to this service.
|
protected Object |
newTransactionIdentifier()
Implementations must return unique identifier for each and every call of
this method.
|
org.opendaylight.yangtools.concepts.ListenerRegistration<DOMDataChangeListener> |
registerDataChangeListener(LogicalDatastoreType store,
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path,
DOMDataChangeListener listener,
AsyncDataBroker.DataChangeScope triggeringScope)
Registers a
AsyncDataChangeListener to receive
notifications when data changes under a given path in the conceptual data
tree. |
void |
setCloseable(AutoCloseable closeable) |
protected com.google.common.util.concurrent.CheckedFuture<Void,TransactionCommitFailedException> |
submit(DOMDataWriteTransaction transaction,
Collection<DOMStoreThreePhaseCommitCohort> cohorts)
Submits a transaction asynchronously for commit.
|
String |
toString() |
checkNotClosed, getTxFactories, newReadOnlyTransaction, newReadWriteTransaction, newWriteOnlyTransaction
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
newReadOnlyTransaction, newReadWriteTransaction, newWriteOnlyTransaction
public ConcurrentDOMDataBroker(Map<LogicalDatastoreType,DOMStore> datastores, Executor listenableFutureExecutor)
public ConcurrentDOMDataBroker(Map<LogicalDatastoreType,DOMStore> datastores, Executor listenableFutureExecutor, org.opendaylight.yangtools.util.DurationStatisticsTracker commitStatsTracker)
public org.opendaylight.yangtools.util.DurationStatisticsTracker getCommitStatsTracker()
protected com.google.common.util.concurrent.CheckedFuture<Void,TransactionCommitFailedException> submit(DOMDataWriteTransaction transaction, Collection<DOMStoreThreePhaseCommitCohort> cohorts)
AbstractDOMTransactionFactory
submit
in class AbstractDOMTransactionFactory<DOMStore>
transaction
- the transaction to submitcohorts
- the associated cohortspublic void setCloseable(AutoCloseable closeable)
public void close()
close
in interface AutoCloseable
close
in class AbstractDOMTransactionFactory<DOMStore>
protected Object newTransactionIdentifier()
AbstractDOMTransactionFactory
newTransactionIdentifier
in class AbstractDOMTransactionFactory<DOMStore>
public org.opendaylight.yangtools.concepts.ListenerRegistration<DOMDataChangeListener> registerDataChangeListener(LogicalDatastoreType store, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path, DOMDataChangeListener listener, AsyncDataBroker.DataChangeScope triggeringScope)
AsyncDataBroker
AsyncDataChangeListener
to receive
notifications when data changes under a given path in the conceptual data
tree.
You are able to register for notifications for any node or subtree which can be reached via the supplied path.
If path type P
allows it, you may specify paths up to the leaf nodes
then it is possible to listen on leaf nodes.
You are able to register for data change notifications for a subtree even if it does not exist. You will receive notification once that node is created.
If there is any preexisting data in data tree on path for which you are registering, you will receive initial data change event, which will contain all preexisting data, marked as created.
You are also able to specify the scope of the changes you want to be notified.
Supported scopes are:
AsyncDataBroker.DataChangeScope.BASE
- notification events will only be
triggered when a node referenced by path is created, removed or replaced.
AsyncDataBroker.DataChangeScope.ONE
- notifications events will only be
triggered when a node referenced by path is created, removed or replaced,
or any or any of its immediate children are created, updated or removed.
AsyncDataBroker.DataChangeScope.SUBTREE
- notification events will be
triggered when a node referenced by the path is created, removed
or replaced or any of the children in its subtree are created, removed
or replaced.
AsyncDataBroker.DataChangeScope
for examples.
This method returns a ListenerRegistration
object. To
"unregister" your listener for changes call the "close" method on this
returned object.
You MUST call close when you no longer need to receive notifications (such as during shutdown or for example if your bundle is shutting down).
registerDataChangeListener
in interface AsyncDataBroker<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier,org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode<?,?>,DOMDataChangeListener>
store
- Logical Data Store - Logical Datastore you want to listen for
changes in. For example
LogicalDatastoreType.OPERATIONAL
or
LogicalDatastoreType.CONFIGURATION
path
- Path (subtree identifier) on which client listener will be
invoked.listener
- Instance of listener which should be invoked ontriggeringScope
- Scope of change which triggers callback.ListenerRegistration.close()
to stop
delivery of change events.public Map<Class<? extends DOMDataBrokerExtension>,DOMDataBrokerExtension> getSupportedExtensions()
DOMExtensibleService
getSupportedExtensions
in interface DOMExtensibleService<DOMDataBroker,DOMDataBrokerExtension>
public DOMTransactionChain createTransactionChain(TransactionChainListener listener)
DOMDataBroker
createTransactionChain
in interface TransactionChainFactory<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier,org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode<?,?>>
createTransactionChain
in interface DOMDataBroker
listener
- Transaction chain event listenerCopyright © 2019 OpenDaylight. All rights reserved.