in sdk/src/resumable/ResumableUploader.cc [553:585]
int ResumableUploader::getPartsToUpload(PdsError &err, UploadPartRecordList &partsUploaded, UploadPartRecordList &partsToUpload)
{
UNUSED_PARAM(err);
std::set<uint64_t> partNumbersUploaded;
if(hasRecord_){
for (UploadPartRecord &part : record_.parts) {
partNumbersUploaded.insert(part.partNumber);
partsUploaded.emplace_back(part);
consumedSize_ += part.size;
}
}
int32_t partCount = (int32_t)((fileSize_ - 1)/ partSize_ + 1);
for(int32_t i = 0; i < partCount; i++){
UploadPartRecord part;
part.partNumber = i+1;
if (i == partCount -1 ){
part.size = fileSize_ - partSize_ * (partCount - 1);
}
else {
part.size = partSize_;
}
auto iterNum = partNumbersUploaded.find(part.partNumber);
if (iterNum == partNumbersUploaded.end()){
partsToUpload.push_back(part);
}
}
return 0;
}