package org.opendaylight.controller.cluster.raft.base.messages;
+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.
*/
-public class ApplySnapshot {
+public class ApplySnapshot implements ControlMessage {
private static final Callback NOOP_CALLBACK = new Callback() {
@Override
public void onSuccess() {
package org.opendaylight.controller.cluster.raft.base.messages;
import akka.actor.ActorRef;
+import akka.dispatch.ControlMessage;
import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry;
import org.opendaylight.yangtools.concepts.Identifier;
/**
* Local message sent by a RaftActor to itself to signal state has been applied to the state machine.
*/
-public class ApplyState {
+public class ApplyState implements ControlMessage {
private final ActorRef clientActor;
private final Identifier identifier;
private final ReplicatedLogEntry replicatedLogEntry;
package org.opendaylight.controller.cluster.raft.base.messages;
+import akka.dispatch.ControlMessage;
import java.util.Collections;
import java.util.List;
import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry;
-public class CaptureSnapshot {
+public class CaptureSnapshot implements ControlMessage {
private final long lastAppliedIndex;
private final long lastAppliedTerm;
private final long lastIndex;
*/
package org.opendaylight.controller.cluster.raft.base.messages;
+import akka.dispatch.ControlMessage;
import com.google.common.base.Preconditions;
import java.io.OutputStream;
import java.util.Optional;
import javax.annotation.Nonnull;
import org.opendaylight.controller.cluster.raft.persisted.Snapshot;
-public class CaptureSnapshotReply {
+public class CaptureSnapshotReply implements ControlMessage {
private final Snapshot.State snapshotState;
private final Optional<OutputStream> installSnapshotStream;
package org.opendaylight.controller.cluster.raft.base.messages;
+import akka.dispatch.ControlMessage;
+
/**
* Local message sent to indicate the current election term has timed out.
*/
-public final class ElectionTimeout {
+public final class ElectionTimeout implements ControlMessage {
public static final ElectionTimeout INSTANCE = new ElectionTimeout();
private ElectionTimeout() {
package org.opendaylight.controller.cluster.raft.base.messages;
+import akka.dispatch.ControlMessage;
+
/**
* This messages is sent via a schedule to the Leader to prompt it to send a heart beat to its followers.
*/
-public final class SendHeartBeat {
+public final class SendHeartBeat implements ControlMessage {
public static final SendHeartBeat INSTANCE = new SendHeartBeat();
private SendHeartBeat() {
*/
package org.opendaylight.controller.cluster.raft.base.messages;
+import akka.dispatch.ControlMessage;
+
/**
* Internal message sent when a snapshot capture is complete.
*
* @author Thomas Pantelis
*/
-public class SnapshotComplete {
+public class SnapshotComplete implements ControlMessage {
public static final SnapshotComplete INSTANCE = new SnapshotComplete();
private SnapshotComplete() {
*/
package org.opendaylight.controller.cluster.raft.base.messages;
+import akka.dispatch.ControlMessage;
import java.io.Serializable;
/**
*
* @author Thomas Pantelis
*/
-public final class TimeoutNow implements Serializable {
+public final class TimeoutNow implements Serializable, ControlMessage {
private static final long serialVersionUID = 1L;
public static final TimeoutNow INSTANCE = new TimeoutNow();
*/
package org.opendaylight.controller.cluster.raft.client.messages;
+import akka.dispatch.ControlMessage;
+
/**
* Local message sent to a RaftActor to obtain a snapshot of statistical information. Returns an
* OnDemandRaftState instance.
*
* @author Thomas Pantelis
*/
-public class GetOnDemandRaftState {
+public class GetOnDemandRaftState implements ControlMessage {
public static final GetOnDemandRaftState INSTANCE = new GetOnDemandRaftState();
private GetOnDemandRaftState() {
*/
package org.opendaylight.controller.cluster.raft.client.messages;
+import akka.dispatch.ControlMessage;
import java.io.Serializable;
import org.opendaylight.controller.cluster.raft.base.messages.EmptyExternalizableProxy;
*
* @author Thomas Pantelis
*/
-public final class Shutdown implements Serializable {
+public final class Shutdown implements Serializable, ControlMessage {
private static final long serialVersionUID = 1L;
public static final Shutdown INSTANCE = new Shutdown();
package org.opendaylight.controller.cluster.raft.messages;
+import akka.dispatch.ControlMessage;
import java.io.Serializable;
/**
* Interface implemented by all requests exchanged in the Raft protocol.
*/
-public interface RaftRPC extends Serializable {
+public interface RaftRPC extends Serializable, ControlMessage {
/**
* Return the term in which this call is being made.
*
*/
package org.opendaylight.controller.cluster.raft.messages;
+import akka.dispatch.ControlMessage;
+
/**
* Local message sent to self on receiving the InstallSnapshotReply from a follower indicating that
* the catch up of the follower has completed successfully for an AddServer operation.
*/
-public class UnInitializedFollowerSnapshotReply {
+public class UnInitializedFollowerSnapshotReply implements ControlMessage {
private final String followerId;
public UnInitializedFollowerSnapshotReply(String followerId) {
*/
package org.opendaylight.controller.cluster.raft.persisted;
+import akka.dispatch.ControlMessage;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
*
* @author Thomas Pantelis
*/
-public class ApplyJournalEntries implements Serializable {
+public class ApplyJournalEntries implements Serializable, ControlMessage {
private static final class Proxy implements Externalizable {
private static final long serialVersionUID = 1L;
*/
package org.opendaylight.controller.cluster.raft.persisted;
+import akka.dispatch.ControlMessage;
import java.io.Serializable;
import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload;
*
* @author Thomas Pantelis
*/
-public final class NoopPayload extends Payload implements Serializable {
+public final class NoopPayload extends Payload implements Serializable, ControlMessage {
public static final NoopPayload INSTANCE = new NoopPayload();
// There is no need for Externalizable
private static final class Proxy implements Serializable {
private static final long serialVersionUID = 1L;
- @SuppressWarnings("static-method")
private Object readResolve() {
return INSTANCE;
}
return 0;
}
- @SuppressWarnings("static-method")
private Object writeReplace() {
return PROXY;
}