Package org.opendaylight.mdsal.dom.api
Interface DOMDataTreeReadTransaction
-
- All Superinterfaces:
AutoCloseable
,DOMDataTreeReadOperations
,DOMDataTreeTransaction
,org.opendaylight.yangtools.concepts.Identifiable<Object>
,org.opendaylight.yangtools.concepts.Registration
- All Known Implementing Classes:
ForwardingDOMDataReadOnlyTransaction
,ShardedDOMReadTransactionAdapter
,TransactionChainReadTransaction
public interface DOMDataTreeReadTransaction extends DOMDataTreeTransaction, DOMDataTreeReadOperations, org.opendaylight.yangtools.concepts.Registration
A transaction that provides read access to a logical data store.View of the data tree is a stable point-in-time snapshot of the current data tree state when the transaction was created. It's state and underlying data tree is not affected by other concurrently running transactions.
Implementation Note: This interface is not intended to be implemented by users of MD-SAL, but only to be consumed by them.
Transaction isolation example
Lets assume initial state of data tree forPATH
isA
.txRead = broker.newReadOnlyTransaction(); // read Transaction is snapshot of data txWrite = broker.newReadWriteTransactoin(); // concurrent write transaction txRead.read(OPERATIONAL, PATH).get(); // will return Optional containing A txWrite = broker.put(OPERATIONAL, PATH, B); // writes B to PATH txRead.read(OPERATIONAL, PATH).get(); // still returns Optional containing A txWrite.submit().get(); // data tree is updated, PATH contains B txRead.read(OPERATIONAL, PATH).get(); // still returns Optional containing A txAfterCommit = broker.newReadOnlyTransaction(); // read Transaction is snapshot of new state txAfterCommit.read(OPERATIONAL, PATH).get(); // returns Optional containing B;
Note: example contains blocking calls on future only to illustrate that action happened after other asynchronous action. Use of blocking call
AbstractFuture.get()
is discouraged for most uses and you should useFluentFuture.addCallback(com.google.common.util.concurrent.FutureCallback, java.util.concurrent.Executor)
or other functions fromFutures
to register more specific listeners.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
close()
Closes this transaction and releases all resources associated with it.-
Methods inherited from interface org.opendaylight.mdsal.dom.api.DOMDataTreeReadOperations
exists, read
-
-
-
-
Method Detail
-
close
void close()
Closes this transaction and releases all resources associated with it.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceorg.opendaylight.yangtools.concepts.Registration
-
-