X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2Fbase%2Fmessages%2FApplySnapshot.java;h=7fec7e25f9399a0f6ce71ebf7dc60f43bb4e0eec;hp=54ee02a057ec1805d70e1a15cc264ab3eb0ea956;hb=fb81da23c32b8a332d2cc25e4b15e13b3d2963cd;hpb=71ef4097b2cb06531766c053c3486745e3a5b6ee diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/ApplySnapshot.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/ApplySnapshot.java index 54ee02a057..7fec7e25f9 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/ApplySnapshot.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/ApplySnapshot.java @@ -8,22 +8,52 @@ package org.opendaylight.controller.cluster.raft.base.messages; -import org.opendaylight.controller.cluster.raft.Snapshot; - -import java.io.Serializable; +import akka.dispatch.ControlMessage; +import com.google.common.base.Preconditions; +import javax.annotation.Nonnull; +import org.opendaylight.controller.cluster.raft.persisted.Snapshot; /** - * Internal message, issued by follower to its actor + * Internal message, issued by follower to its actor. */ -public class ApplySnapshot implements Serializable { - private static final long serialVersionUID = 1L; +public class ApplySnapshot implements ControlMessage { + private static final Callback NOOP_CALLBACK = new Callback() { + @Override + public void onSuccess() { + // No-op + } + + @Override + public void onFailure() { + // No-op + } + }; + private final Snapshot snapshot; + private final Callback callback; public ApplySnapshot(Snapshot snapshot) { - this.snapshot = snapshot; + this(snapshot, NOOP_CALLBACK); + } + + public ApplySnapshot(@Nonnull Snapshot snapshot, @Nonnull Callback callback) { + this.snapshot = Preconditions.checkNotNull(snapshot); + this.callback = Preconditions.checkNotNull(callback); } + @Nonnull public Snapshot getSnapshot() { return snapshot; } + + @Nonnull + public Callback getCallback() { + return callback; + } + + public interface Callback { + void onSuccess(); + + void onFailure(); + } }