Bug 6540: Refactor FollowerToSnapshot to its own class
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / behaviors / SnapshotTracker.java
index bb7a24248188f0a83b9225a32a9b2a7e3e16f250..fadca3b15d9a174e8b447b963df8bd06e2fe9cde 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.controller.cluster.raft.behaviors;
 
 import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
 import com.google.protobuf.ByteString;
 import java.util.Arrays;
 import org.slf4j.Logger;
@@ -19,14 +20,16 @@ import org.slf4j.Logger;
 public class SnapshotTracker {
     private final Logger LOG;
     private final int totalChunks;
+    private final String leaderId;
     private ByteString collectedChunks = ByteString.EMPTY;
-    private int lastChunkIndex = AbstractLeader.FIRST_CHUNK_INDEX - 1;
+    private int lastChunkIndex = LeaderInstallSnapshotState.FIRST_CHUNK_INDEX - 1;
     private boolean sealed = false;
-    private int lastChunkHashCode = AbstractLeader.INITIAL_LAST_CHUNK_HASH_CODE;
+    private int lastChunkHashCode = LeaderInstallSnapshotState.INITIAL_LAST_CHUNK_HASH_CODE;
 
-    SnapshotTracker(Logger LOG, int totalChunks){
+    SnapshotTracker(Logger LOG, int totalChunks, String leaderId) {
         this.LOG = LOG;
         this.totalChunks = totalChunks;
+        this.leaderId = Preconditions.checkNotNull(leaderId);
     }
 
     /**
@@ -56,7 +59,7 @@ public class SnapshotTracker {
             }
         }
 
-        sealed = (chunkIndex == totalChunks);
+        sealed = chunkIndex == totalChunks;
         lastChunkIndex = chunkIndex;
         collectedChunks = collectedChunks.concat(ByteString.copyFrom(chunk));
         this.lastChunkHashCode = Arrays.hashCode(chunk);
@@ -75,6 +78,10 @@ public class SnapshotTracker {
         return collectedChunks;
     }
 
+    String getLeaderId() {
+        return leaderId;
+    }
+
     public static class InvalidChunkException extends Exception {
         private static final long serialVersionUID = 1L;