int ResumableUploader::getPartsToUpload()

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;
}