X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Ftrace%2Fdom%2Fimpl%2FTracingReadWriteTransaction.java;h=68c4786317abfb32d1a3d21e9dd9f8fb1e80577c;hb=6d6f6269c277720903b9cfeeb36b37f55410a9eb;hp=c906ef933b323605d844af0405aa2164b8586a84;hpb=2bbe2a4d5a4cb7a7fe0eaff26cc680d938d97763;p=mdsal.git diff --git a/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java b/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java index c906ef933b..68c4786317 100644 --- a/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java +++ b/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java @@ -7,24 +7,34 @@ */ package org.opendaylight.controller.md.sal.trace.dom.impl; - import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.ListenableFuture; +import java.time.Instant; import java.util.Objects; - +import org.opendaylight.controller.md.sal.common.api.TransactionStatus; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; +import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; +import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTracked; +import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedRegistry; +import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedTrait; +import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +class TracingReadWriteTransaction + extends AbstractTracingWriteTransaction + implements DOMDataReadWriteTransaction, CloseTracked { -class TracingReadWriteTransaction extends TracingWriteTransaction implements DOMDataReadWriteTransaction { - + private final CloseTrackedTrait closeTracker; private final DOMDataReadWriteTransaction delegate; - TracingReadWriteTransaction(DOMDataReadWriteTransaction delegate, TracingBroker tracingBroker) { + TracingReadWriteTransaction(DOMDataReadWriteTransaction delegate, TracingBroker tracingBroker, + CloseTrackedRegistry readWriteTransactionsRegistry) { super(delegate, tracingBroker); + this.closeTracker = new CloseTrackedTrait<>(readWriteTransactionsRegistry); this.delegate = Objects.requireNonNull(delegate); } @@ -38,4 +48,32 @@ class TracingReadWriteTransaction extends TracingWriteTransaction implements DOM public CheckedFuture exists(LogicalDatastoreType store, YangInstanceIdentifier yiid) { return delegate.exists(store, yiid); } + + @Override + public CheckedFuture submit() { + closeTracker.removeFromTrackedRegistry(); + return super.submit(); + } + + @Override + public ListenableFuture> commit() { + closeTracker.removeFromTrackedRegistry(); + return super.commit(); + } + + @Override + public boolean cancel() { + closeTracker.removeFromTrackedRegistry(); + return super.cancel(); + } + + @Override + public Instant getObjectCreated() { + return closeTracker.getObjectCreated(); + } + + @Override + public Throwable getAllocationContext() { + return closeTracker.getAllocationContext(); + } }