Class TransactionChainManager
- java.lang.Object
 - 
- org.opendaylight.openflowplugin.common.txchain.TransactionChainManager
 
 
- 
- All Implemented Interfaces:
 AutoCloseable,EventListener,org.opendaylight.mdsal.binding.api.TransactionChainListener
public class TransactionChainManager extends Object implements org.opendaylight.mdsal.binding.api.TransactionChainListener, AutoCloseable
The openflowplugin-impl.org.opendaylight.openflowplugin.impl.device package protected class for controllingWriteTransactionlife cycle. It is aTransactionChainListenerand provide package protected methods for writeToTransaction method (wrappedWriteOperations.put(LogicalDatastoreType, InstanceIdentifier, DataObject)) and submitTransaction method (wrappedWriteTransaction.commit()). 
- 
- 
Constructor Summary
Constructors Constructor Description TransactionChainManager(@NonNull org.opendaylight.mdsal.binding.api.DataBroker dataBroker, @NonNull String deviceIdentifier) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacquireWriteTransactionLock()voidactivateTransactionManager()Method change status for TxChainManager to WORKING and it has to make registration for this class instance asTransactionChainListenerto provide possibility a make DS transactions.<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidaddDeleteOperationToTxChain(org.opendaylight.mdsal.common.api.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path)voidclose()com.google.common.util.concurrent.FluentFuture<?>deactivateTransactionManager()Method change status for TxChainManger to SLEEPING and it unregisters this class instance asTransactionChainListenerso it broke a possibility to write something to DS.booleaninitialSubmitWriteTransaction()<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidmergeToTransaction(org.opendaylight.mdsal.common.api.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, T data, boolean createParents)voidonTransactionChainFailed(org.opendaylight.mdsal.binding.api.TransactionChain chain, org.opendaylight.mdsal.binding.api.Transaction transaction, Throwable cause)voidonTransactionChainSuccessful(org.opendaylight.mdsal.binding.api.TransactionChain chain)<T extends org.opendaylight.yangtools.yang.binding.DataObject>
com.google.common.util.concurrent.ListenableFuture<Optional<T>>readFromTransaction(org.opendaylight.mdsal.common.api.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path)voidreleaseWriteTransactionLock()com.google.common.util.concurrent.FluentFuture<?>shuttingDown()@org.checkerframework.checker.lock.qual.GuardedBy({"txLock"}) booleansubmitTransaction()@org.checkerframework.checker.lock.qual.GuardedBy({"txLock"}) booleansubmitTransaction(boolean doSync)<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidwriteToTransaction(org.opendaylight.mdsal.common.api.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, T data, boolean createParents) 
 - 
 
- 
- 
Constructor Detail
- 
TransactionChainManager
public TransactionChainManager(@NonNull org.opendaylight.mdsal.binding.api.DataBroker dataBroker, @NonNull String deviceIdentifier) 
 - 
 
- 
Method Detail
- 
initialSubmitWriteTransaction
public boolean initialSubmitWriteTransaction()
 
- 
activateTransactionManager
public void activateTransactionManager()
Method change status for TxChainManager to WORKING and it has to make registration for this class instance asTransactionChainListenerto provide possibility a make DS transactions. Call this method for MASTER role only. 
- 
deactivateTransactionManager
public com.google.common.util.concurrent.FluentFuture<?> deactivateTransactionManager()
Method change status for TxChainManger to SLEEPING and it unregisters this class instance asTransactionChainListenerso it broke a possibility to write something to DS. Call this method for SLAVE only.- Returns:
 - Future
 
 
- 
submitTransaction
public @org.checkerframework.checker.lock.qual.GuardedBy({"txLock"}) boolean submitTransaction() 
- 
submitTransaction
public @org.checkerframework.checker.lock.qual.GuardedBy({"txLock"}) boolean submitTransaction(boolean doSync) 
- 
addDeleteOperationToTxChain
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void addDeleteOperationToTxChain(org.opendaylight.mdsal.common.api.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path) 
- 
writeToTransaction
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void writeToTransaction(org.opendaylight.mdsal.common.api.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, T data, boolean createParents) 
- 
mergeToTransaction
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void mergeToTransaction(org.opendaylight.mdsal.common.api.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, T data, boolean createParents) 
- 
readFromTransaction
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> com.google.common.util.concurrent.ListenableFuture<Optional<T>> readFromTransaction(org.opendaylight.mdsal.common.api.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path)
 
- 
onTransactionChainFailed
public void onTransactionChainFailed(org.opendaylight.mdsal.binding.api.TransactionChain chain, org.opendaylight.mdsal.binding.api.Transaction transaction, Throwable cause)- Specified by:
 onTransactionChainFailedin interfaceorg.opendaylight.mdsal.binding.api.TransactionChainListener
 
- 
onTransactionChainSuccessful
public void onTransactionChainSuccessful(org.opendaylight.mdsal.binding.api.TransactionChain chain)
- Specified by:
 onTransactionChainSuccessfulin interfaceorg.opendaylight.mdsal.binding.api.TransactionChainListener
 
- 
shuttingDown
public com.google.common.util.concurrent.FluentFuture<?> shuttingDown()
 
- 
close
public void close()
- Specified by:
 closein interfaceAutoCloseable
 
- 
acquireWriteTransactionLock
public void acquireWriteTransactionLock()
 
- 
releaseWriteTransactionLock
public void releaseWriteTransactionLock()
 
 - 
 
 -