+ *
+ * @param raftVersion the raft version.
+ */
+ public void setRaftVersion(final short raftVersion) {
+ this.raftVersion = raftVersion;
+ }
+
+ /**
+ * Returns the LeaderInstallSnapshotState for the in progress install snapshot.
+ *
+ * @return the LeaderInstallSnapshotState if a snapshot install is in progress, null otherwise.
+ */
+ @Nullable
+ public LeaderInstallSnapshotState getInstallSnapshotState() {
+ return installSnapshotState;
+ }
+
+ /**
+ * Sets the LeaderInstallSnapshotState when an install snapshot is initiated.
+ *
+ * @param state the LeaderInstallSnapshotState
+ */
+ public void setLeaderInstallSnapshotState(@Nonnull final LeaderInstallSnapshotState state) {
+ if (this.installSnapshotState == null) {
+ this.installSnapshotState = Preconditions.checkNotNull(state);
+ }
+ }
+
+ /**
+ * Clears the LeaderInstallSnapshotState when an install snapshot is complete.
+ */
+ public void clearLeaderInstallSnapshotState() {
+ Preconditions.checkState(installSnapshotState != null);
+ installSnapshotState.close();
+ installSnapshotState = null;
+ }
+
+ /**
+ * Sets the index of the log entry whose payload size exceeds the maximum size for a single message and thus
+ * needs to be sliced into smaller chunks.
+ *
+ * @param index the log entry index or NO_INDEX to clear it