import javax.annotation.Nullable;
import javax.annotation.concurrent.NotThreadSafe;
import org.opendaylight.controller.cluster.access.commands.AbortLocalTransactionRequest;
+import org.opendaylight.controller.cluster.access.commands.AbstractLocalTransactionRequest;
import org.opendaylight.controller.cluster.access.commands.CommitLocalTransactionRequest;
import org.opendaylight.controller.cluster.access.commands.ExistsTransactionRequest;
import org.opendaylight.controller.cluster.access.commands.ExistsTransactionSuccess;
});
}
+ @Override
+ void handleForwardedLocalRequest(final AbstractLocalTransactionRequest<?> request,
+ final Consumer<Response<?, ?>> callback) {
+ if (request instanceof AbortLocalTransactionRequest) {
+ sendAbort(request, callback);
+ } else {
+ throw new IllegalArgumentException("Unhandled request" + request);
+ }
+ }
+
@Override
void handleForwardedRemoteRequest(final TransactionRequest<?> request,
final @Nullable Consumer<Response<?, ?>> callback) {
}
@Override
- void forwardToRemote(final RemoteProxyTransaction successor, final TransactionRequest<?> request,
- final Consumer<Response<?, ?>> callback) {
+ final void forwardToRemote(final RemoteProxyTransaction successor, final TransactionRequest<?> request,
+ final Consumer<Response<?, ?>> callback) {
if (request instanceof CommitLocalTransactionRequest) {
final CommitLocalTransactionRequest req = (CommitLocalTransactionRequest) request;
final DataTreeModification mod = req.getModification();
} else if (request instanceof AbortLocalTransactionRequest) {
LOG.debug("Forwarding abort {} to successor {}", request, successor);
successor.abort();
+ } else if (request instanceof TransactionPurgeRequest) {
+ LOG.debug("Forwarding purge {} to successor {}", request, successor);
+ successor.purge();
} else {
throw new IllegalArgumentException("Unhandled request" + request);
}