internal static ProgressVector Clone(ProgressVector originalProgressVector, uint progressVectorMaxEntries, Epoch highestBackedUpEpoch, Epoch headEpoch) { //try trimming the progress vector before cloning originalProgressVector.TrimProgressVectorIfNeeded(highestBackedUpEpoch, headEpoch); var copiedProgressVector = new ProgressVector(); copiedProgressVector.progressVectorMaxEntries = progressVectorMaxEntries; foreach (var vector in originalProgressVector.vectors) { copiedProgressVector.vectors.Add(vector); } return(copiedProgressVector); }