@@ -422,8 +422,8 @@ - (void) hydrateFromDB:(NSMutableDictionary *) tempMultiPartMasterTaskDictionary
422422 continue ;
423423 }
424424 // Check if the subTask is is already completed. If it is, add it to the completed parts list, update the progress object and go to the next iteration of the loop
425- if (subTask.status == AWSS3TransferUtilityTransferStatusCompleted ) {
426- [multiPartUploadTask.completedPartsSet addObject : subTask];
425+ if (subTask.status == AWSS3TransferUtilityTransferStatusCompleted) {
426+ [multiPartUploadTask addUploadSubTask : subTask];
427427 continue ;
428428 }
429429
@@ -1233,18 +1233,6 @@ - (void) retryUpload: (AWSS3TransferUtilityUploadTask *) transferUtilityUploadTa
12331233
12341234 // Start the subTasks
12351235 [transferUtilityMultiPartUploadTask moveWaitingTasksToInProgress: YES ];
1236- // for (AWSS3TransferUtilityUploadSubTask *subTask in transferUtilityMultiPartUploadTask.inProgressTasks) {
1237- // AWSDDLogDebug(@"Starting subTask %@", @(subTask.taskIdentifier));
1238- // if (subTask.sessionTask.state == NSURLSessionTaskStateSuspended) {
1239- // [subTask.sessionTask resume];
1240- // }
1241- // }
1242-
1243- // for (id taskIdentifier in transferUtilityMultiPartUploadTask.inProgressPartsDictionary) {
1244- // AWSS3TransferUtilityUploadSubTask *subTask = [transferUtilityMultiPartUploadTask.inProgressPartsDictionary objectForKey:taskIdentifier];
1245- // AWSDDLogDebug(@"Starting subTask %@", @(subTask.taskIdentifier));
1246- // [subTask.sessionTask resume];
1247- // }
12481236
12491237 return [AWSTask taskWithResult: transferUtilityMultiPartUploadTask];
12501238 }];
@@ -1956,11 +1944,11 @@ - (void)resumeAllMultipartUploadsWithCompletionHandler:(nullable AWSS3TransferUt
19561944#pragma mark - Internal helper methods
19571945
19581946- (AWSTask *)callFinishMultiPartForUploadTask : (AWSS3TransferUtilityMultiPartUploadTask *)uploadTask {
1959- NSMutableArray *completedParts = [NSMutableArray arrayWithCapacity: [ uploadTask.completedPartsSet count ] ];
1947+ NSMutableArray *completedParts = [NSMutableArray arrayWithCapacity: uploadTask.completedTasks. count];
19601948 NSMutableDictionary *tempDictionary = [NSMutableDictionary new ];
19611949
19621950 // Create a new Dictionary with the partNumber as the Key
1963- for (AWSS3TransferUtilityUploadSubTask *subTask in uploadTask.completedPartsSet ) {
1951+ for (AWSS3TransferUtilityUploadSubTask *subTask in uploadTask.completedTasks ) {
19641952 [tempDictionary setObject: subTask forKey: subTask.partNumber];
19651953 }
19661954
@@ -2345,33 +2333,31 @@ - (void)URLSession:(NSURLSession *)session
23452333 transferUtilityUploadTask.expression .progressBlock (transferUtilityUploadTask, transferUtilityUploadTask.progress );
23462334 }
23472335 }
2348- }
2349- else if ([transferUtilityTask isKindOfClass: [AWSS3TransferUtilityMultiPartUploadTask class ]]) {
2336+ } else if ([transferUtilityTask isKindOfClass: [AWSS3TransferUtilityMultiPartUploadTask class ]]) {
23502337 // Get the multipart upload task
23512338 AWSS3TransferUtilityMultiPartUploadTask *transferUtilityMultiPartUploadTask = [self .taskDictionary objectForKey: @(task.taskIdentifier)];
23522339 // Get multipart upload sub task
2353- AWSS3TransferUtilityUploadSubTask *subTask = [transferUtilityMultiPartUploadTask.inProgressPartsDictionary objectForKey: @( task.taskIdentifier) ];
2340+ AWSS3TransferUtilityUploadSubTask *subTask = [transferUtilityMultiPartUploadTask inProgressTaskForTaskIdentifier: task.taskIdentifier];
23542341 subTask.totalBytesSent = totalBytesSent;
2355-
2356-
2342+
23572343 // Calculate the total sent so far
23582344 int64_t totalSentSoFar = 0 ;
23592345 // Create a new Dictionary with the partNumber as the Key
23602346 NSMutableDictionary *completedPartsByPartNumber = [NSMutableDictionary new ];
2361- for (AWSS3TransferUtilityUploadSubTask *subTask in transferUtilityMultiPartUploadTask.completedPartsSet ) {
2347+ for (AWSS3TransferUtilityUploadSubTask *subTask in transferUtilityMultiPartUploadTask.completedTasks ) {
23622348 [completedPartsByPartNumber setObject: subTask forKey: subTask.partNumber];
23632349 }
2364- for (AWSS3TransferUtilityUploadSubTask *aSubTask in [ completedPartsByPartNumber allValues ] ) {
2350+ for (AWSS3TransferUtilityUploadSubTask *aSubTask in completedPartsByPartNumber. allValues ) {
23652351 totalSentSoFar += aSubTask.totalBytesExpectedToSend ;
23662352 }
2367- for (AWSS3TransferUtilityUploadSubTask *aSubTask in [ transferUtilityMultiPartUploadTask.inProgressPartsDictionary allValues ] ) {
2353+ for (AWSS3TransferUtilityUploadSubTask *aSubTask in transferUtilityMultiPartUploadTask.inProgressTasks ) {
23682354 totalSentSoFar += aSubTask.totalBytesSent ;
23692355 }
2370-
2356+
23712357 if (transferUtilityMultiPartUploadTask.progress .completedUnitCount != totalSentSoFar ) {
23722358 transferUtilityMultiPartUploadTask.progress .totalUnitCount = [transferUtilityMultiPartUploadTask.contentLength longLongValue ];
23732359 transferUtilityMultiPartUploadTask.progress .completedUnitCount = totalSentSoFar;
2374-
2360+
23752361 // execute the callback to the progressblock if present.
23762362 if (transferUtilityMultiPartUploadTask.expression .progressBlock ) {
23772363 AWSDDLogDebug (@" Total %lld , ProgressSoFar %lld " , transferUtilityMultiPartUploadTask.progress .totalUnitCount , transferUtilityMultiPartUploadTask.progress .completedUnitCount );
@@ -2399,21 +2385,20 @@ - (void)completeTask:(AWSS3TransferUtilityTask *)task removeCompletedTask:(BOOL)
23992385}
24002386
24012387- (void )cleanupForMultiPartUploadTask : (AWSS3TransferUtilityMultiPartUploadTask *)task {
2402-
24032388 // Add it to list of completed Tasks
24042389 [self .completedTaskDictionary setObject: task forKey: task.transferID];
2405-
2390+
24062391 // Remove all entries from taskDictionary.
2407- for ( AWSS3TransferUtilityUploadSubTask *subTask in [ task.inProgressPartsDictionary allValues ] ) {
2392+ for (AWSS3TransferUtilityUploadSubTask *subTask in task.inProgressTasks ) {
24082393 [self unregisterTaskIdentifier: subTask.taskIdentifier];
24092394 [self removeFile: subTask.file];
24102395 }
2411-
2396+
24122397 // Remove temporary file if required.
24132398 if (task.temporaryFileCreated ) {
24142399 [self removeFile: task.file];
24152400 }
2416-
2401+
24172402 // Remove data from the Database.
24182403 [AWSS3TransferUtilityDatabaseHelper deleteTransferRequestFromDB: task.transferID databaseQueue: _databaseQueue];
24192404}
0 commit comments