Add raftVersion field to AppendEntriesReply
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / messages / AppendEntriesReply.java
index 7e6628abe1464800ef2449501a165a89c19cbcb3..ffdfaa6a0ed112ce50eb22d881d2731dd7a69978 100644 (file)
@@ -8,12 +8,13 @@
 
 package org.opendaylight.controller.cluster.raft.messages;
 
-import java.io.Serializable;
+import org.opendaylight.controller.cluster.raft.RaftVersions;
 
 /**
  * Reply for the AppendEntriesRpc message
  */
-public class AppendEntriesReply extends AbstractRaftRPC implements Serializable {
+public class AppendEntriesReply extends AbstractRaftRPC {
+    private static final long serialVersionUID = -7487547356392536683L;
 
     // true if follower contained entry matching
     // prevLogIndex and prevLogTerm
@@ -30,17 +31,27 @@ public class AppendEntriesReply extends AbstractRaftRPC implements Serializable
     // responding
     private final String followerId;
 
-    public AppendEntriesReply(String followerId, long term, boolean success, long logLastIndex, long logLastTerm) {
+    private final short payloadVersion;
+
+    private final short raftVersion = RaftVersions.CURRENT_VERSION;
+
+    private final boolean forceInstallSnapshot;
+
+    public AppendEntriesReply(String followerId, long term, boolean success, long logLastIndex, long logLastTerm,
+            short payloadVersion) {
+        this(followerId, term, success, logLastIndex, logLastTerm, payloadVersion, false);
+    }
+
+    public AppendEntriesReply(String followerId, long term, boolean success, long logLastIndex, long logLastTerm,
+                              short payloadVersion, boolean forceInstallSnapshot) {
         super(term);
 
         this.followerId = followerId;
         this.success = success;
         this.logLastIndex = logLastIndex;
         this.logLastTerm = logLastTerm;
-    }
-
-    public long getTerm() {
-        return term;
+        this.payloadVersion = payloadVersion;
+        this.forceInstallSnapshot = forceInstallSnapshot;
     }
 
     public boolean isSuccess() {
@@ -58,4 +69,23 @@ public class AppendEntriesReply extends AbstractRaftRPC implements Serializable
     public String getFollowerId() {
         return followerId;
     }
+
+    public short getPayloadVersion() {
+        return payloadVersion;
+    }
+
+    public short getRaftVersion() {
+        return raftVersion;
+    }
+
+    public boolean isForceInstallSnapshot() {
+        return forceInstallSnapshot;
+    }
+
+    @Override
+    public String toString() {
+        return "AppendEntriesReply [term=" + getTerm() + ", success=" + success + ", followerId=" + followerId
+                + ", logLastIndex=" + logLastIndex + ", logLastTerm=" + logLastTerm + ", forceInstallSnapshot="
+                + forceInstallSnapshot + ", payloadVersion=" + payloadVersion + ", raftVersion=" + raftVersion + "]";
+    }
 }