public class BindingDOMDataBrokerAdapter extends AbstractForwardedDataBroker implements DataBroker, DataTreeChangeService
Besides this the DataBrokerImpl and it's collaborators also cache data that is already transformed from the binding independent to binding aware format
Constructor and Description |
---|
BindingDOMDataBrokerAdapter(DOMDataBroker domDataBroker,
BindingToNormalizedNodeCodec codec) |
Modifier and Type | Method and Description |
---|---|
TransactionChain |
createTransactionChain(TransactionChainListener listener)
Create a new transaction chain.
|
protected BindingToNormalizedNodeCodec |
getCodec() |
T |
getDelegate() |
ReadTransaction |
newReadOnlyTransaction()
Allocates a new read-only transaction which provides an immutable snapshot of the data tree.
|
ReadWriteTransaction |
newReadWriteTransaction()
Allocates new read-write transaction which provides a mutable view of the data tree.
|
WriteTransaction |
newWriteOnlyTransaction()
Allocates new write-only transaction based on latest state of data tree.
|
<T extends DataObject,L extends DataTreeChangeListener<T>> |
registerDataTreeChangeListener(DataTreeIdentifier<T> treeId,
L listener)
Registers a
DataTreeChangeListener to receive
notifications when data changes under a given path in the conceptual data
tree. |
toBinding, toBinding, toBindingData
public BindingDOMDataBrokerAdapter(DOMDataBroker domDataBroker, BindingToNormalizedNodeCodec codec)
public ReadTransaction newReadOnlyTransaction()
TransactionFactory
newReadOnlyTransaction
in interface TransactionFactory
public WriteTransaction newWriteOnlyTransaction()
TransactionFactory
Preconditions for mutation of data tree are captured from the snapshot of data tree state, when the transaction
is allocated. If data was changed during transaction in an incompatible way then the commit of this transaction
will fail. See WriteTransaction.commit()
for more details about conflicting and not-conflicting changes
and failure scenarios.
Since this transaction does not provide a view of the data it SHOULD BE used only by callers who are exclusive
writers (exporters of data) to the subtree they modify. This prevents optimistic lock failures as described in
WriteTransaction.commit()
.
Exclusivity of writers to particular subtree SHOULD BE enforced by external locking mechanism.
newWriteOnlyTransaction
in interface TransactionFactory
public ReadWriteTransaction newReadWriteTransaction()
TransactionFactory
Preconditions for mutation of data tree are captured from the snapshot of data tree state, when the transaction
is allocated. If data was changed during transaction in an incompatible way then the commit of this transaction
will fail. See WriteTransaction.commit()
for more details about conflicting and non-conflicting
changes and failure scenarios.
newReadWriteTransaction
in interface TransactionFactory
public TransactionChain createTransactionChain(TransactionChainListener listener)
DataBroker
createTransactionChain
in interface DataBroker
listener
- Transaction chain event listenerpublic <T extends DataObject,L extends DataTreeChangeListener<T>> org.opendaylight.yangtools.concepts.ListenerRegistration<L> registerDataTreeChangeListener(DataTreeIdentifier<T> treeId, L listener)
DataTreeChangeService
DataTreeChangeListener
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 represented using DataTreeIdentifier
.
You are able to register for data change notifications for a subtree or leaf even if it does not exist. You will receive notification once that node is created.
If there is any pre-existing data in the data tree for the path for which you are registering, you will receive an initial data change event, which will contain all pre-existing data, marked as created.
This method returns a ListenerRegistration
object. To
"unregister" your listener for changes call the ListenerRegistration.close()
method on the returned object.
You MUST explicitly unregister your listener when you no longer want to receive notifications. This is especially true in OSGi environments, where failure to do so during bundle shutdown can lead to stale listeners being still registered.
registerDataTreeChangeListener
in interface DataTreeChangeService
treeId
- Data tree identifier of the subtree which should be watched for
changes.listener
- Listener instance which is being registeredListenerRegistration.close()
to stop
delivery of change events.public final T getDelegate()
getDelegate
in interface org.opendaylight.yangtools.concepts.Delegator<T>
protected final BindingToNormalizedNodeCodec getCodec()
Copyright © 2019 OpenDaylight. All rights reserved.