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=c9660d9a4a2405e8cb7dbea3abd7721816007264;hp=9739fb2f1b0ccb42e5fcd0446e5769194797be31;hb=b4bf55727093657662d8c16a50fa85f87978a586;hpb=8c6fac2a853a107c49983fb17934958eadaee416 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 9739fb2f1b..c9660d9a4a 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 @@ -5,19 +5,53 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.cluster.raft.base.messages; -import java.io.Serializable; +import static java.util.Objects.requireNonNull; + +import akka.dispatch.ControlMessage; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.controller.cluster.raft.persisted.Snapshot; + +/** + * Internal message, issued by follower to its actor. + */ +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 class ApplySnapshot implements Serializable { - private final Object snapshot; + public ApplySnapshot(@NonNull Snapshot snapshot) { + this(snapshot, NOOP_CALLBACK); + } - public ApplySnapshot(Object snapshot) { - this.snapshot = snapshot; + public ApplySnapshot(@NonNull Snapshot snapshot, @NonNull Callback callback) { + this.snapshot = requireNonNull(snapshot); + this.callback = requireNonNull(callback); } - public Object getSnapshot() { + public @NonNull Snapshot getSnapshot() { return snapshot; } + + public @NonNull Callback getCallback() { + return callback; + } + + public interface Callback { + void onSuccess(); + + void onFailure(); + } }