X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2FPersistentDataProvider.java;h=1faee47f526ac119d384ab41a4b29362a236c89f;hb=refs%2Fchanges%2F69%2F100769%2F1;hp=b4f08c0394b38c9ef88772760b084ff5dd7db6df;hpb=4e696d9795fe7eef40369c05c340d137394126f3;p=controller.git diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/PersistentDataProvider.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/PersistentDataProvider.java index b4f08c0394..1faee47f52 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/PersistentDataProvider.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/PersistentDataProvider.java @@ -7,20 +7,24 @@ */ package org.opendaylight.controller.cluster; +import static java.util.Objects.requireNonNull; + import akka.japi.Procedure; +import akka.persistence.AbstractPersistentActor; +import akka.persistence.DeleteMessagesSuccess; +import akka.persistence.DeleteSnapshotsSuccess; +import akka.persistence.JournalProtocol; +import akka.persistence.SnapshotProtocol; import akka.persistence.SnapshotSelectionCriteria; -import akka.persistence.UntypedPersistentActor; -import com.google.common.base.Preconditions; /** * A DataPersistenceProvider implementation with persistence enabled. */ public class PersistentDataProvider implements DataPersistenceProvider { + private final AbstractPersistentActor persistentActor; - private final UntypedPersistentActor persistentActor; - - public PersistentDataProvider(UntypedPersistentActor persistentActor) { - this.persistentActor = Preconditions.checkNotNull(persistentActor, "persistentActor can't be null"); + public PersistentDataProvider(final AbstractPersistentActor persistentActor) { + this.persistentActor = requireNonNull(persistentActor, "persistentActor can't be null"); } @Override @@ -29,22 +33,27 @@ public class PersistentDataProvider implements DataPersistenceProvider { } @Override - public void persist(T entry, Procedure procedure) { + public void persist(final T entry, final Procedure procedure) { persistentActor.persist(entry, procedure); } @Override - public void saveSnapshot(Object snapshot) { + public void persistAsync(final T entry, final Procedure procedure) { + persistentActor.persistAsync(entry, procedure); + } + + @Override + public void saveSnapshot(final Object snapshot) { persistentActor.saveSnapshot(snapshot); } @Override - public void deleteSnapshots(SnapshotSelectionCriteria criteria) { + public void deleteSnapshots(final SnapshotSelectionCriteria criteria) { persistentActor.deleteSnapshots(criteria); } @Override - public void deleteMessages(long sequenceNumber) { + public void deleteMessages(final long sequenceNumber) { persistentActor.deleteMessages(sequenceNumber); } @@ -52,4 +61,14 @@ public class PersistentDataProvider implements DataPersistenceProvider { public long getLastSequenceNumber() { return persistentActor.lastSequenceNr(); } + + @Override + public boolean handleJournalResponse(final JournalProtocol.Response response) { + return response instanceof DeleteMessagesSuccess; + } + + @Override + public boolean handleSnapshotResponse(final SnapshotProtocol.Response response) { + return response instanceof DeleteSnapshotsSuccess; + } }