+ this.replicatedToAllIndex = replicatedToAllIndex;
+ this.payloadVersion = payloadVersion;
+ this.recipientRaftVersion = recipientRaftVersion;
+ this.leaderRaftVersion = leaderRaftVersion;
+ this.leaderAddress = leaderAddress;
+ }
+
+ public AppendEntries(long term, @NonNull String leaderId, long prevLogIndex, long prevLogTerm,
+ @NonNull List<ReplicatedLogEntry> entries, long leaderCommit, long replicatedToAllIndex,
+ short payloadVersion, short recipientRaftVersion, @Nullable String leaderAddress) {
+ this(term, leaderId, prevLogIndex, prevLogTerm, entries, leaderCommit, replicatedToAllIndex, payloadVersion,
+ recipientRaftVersion, RaftVersions.CURRENT_VERSION, leaderAddress);
+ }
+
+ @VisibleForTesting
+ public AppendEntries(long term, @NonNull String leaderId, long prevLogIndex, long prevLogTerm,
+ @NonNull List<ReplicatedLogEntry> entries, long leaderCommit, long replicatedToAllIndex,
+ short payloadVersion) {
+ this(term, leaderId, prevLogIndex, prevLogTerm, entries, leaderCommit, replicatedToAllIndex, payloadVersion,
+ RaftVersions.CURRENT_VERSION, null);