public interface DataBroker extends BindingService, TransactionFactory, DataTreeChangeService
All operations on the data tree are performed via one of the transactions:
TransactionFactory.newReadOnlyTransaction()
TransactionFactory.newWriteOnlyTransaction()
These transactions provide a stable isolated view of data tree, which is guaranteed to be not affected by other concurrent transactions, until transaction is committed.
For a detailed explanation of how transaction are isolated and how transaction-local changes are
committed to global data tree, see ReadTransaction
, WriteTransaction
and WriteTransaction.commit()
.
It is strongly recommended to use the type of transaction, which provides only the minimal capabilities you need. This allows for optimizations at the data broker / data store level. For example, implementations may optimize the transaction for reading if they know ahead of time that you only need to read data - such as not keeping additional meta-data, which may be required for write transactions.
Implementation Note: This interface is not intended to be implemented by users of MD-SAL, but only to be consumed by them.
Modifier and Type | Method and Description |
---|---|
@NonNull TransactionChain |
createMergingTransactionChain(@NonNull TransactionChainListener listener)
Create a new transaction chain.
|
@NonNull TransactionChain |
createTransactionChain(@NonNull TransactionChainListener listener)
Create a new transaction chain.
|
newReadOnlyTransaction, newReadWriteTransaction, newWriteOnlyTransaction
registerDataTreeChangeListener
@NonNull TransactionChain createTransactionChain(@NonNull TransactionChainListener listener)
listener
- Transaction chain event listener@NonNull TransactionChain createMergingTransactionChain(@NonNull TransactionChainListener listener)
Unlike createTransactionChain(TransactionChainListener)
, the transaction chain returned by this
method is allowed to merge individual transactions into larger chunks. When transactions are merged, the results
must be indistinguishable from the result of all operations having been performed on a single transaction.
When transactions are merged, TransactionChain.newReadOnlyTransaction()
may actually be backed by
a read-write transaction, hence an additional restriction on API use is that multiple read-only transactions
may not be open at the same time.
listener
- Transaction chain event listenerCopyright © 2020 OpenDaylight. All rights reserved.