@@ -422,8 +422,8 @@ - (void) hydrateFromDB:(NSMutableDictionary *) tempMultiPartMasterTaskDictionary
422
422
continue ;
423
423
}
424
424
// 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];
427
427
continue ;
428
428
}
429
429
@@ -1233,18 +1233,6 @@ - (void) retryUpload: (AWSS3TransferUtilityUploadTask *) transferUtilityUploadTa
1233
1233
1234
1234
// Start the subTasks
1235
1235
[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
- // }
1248
1236
1249
1237
return [AWSTask taskWithResult: transferUtilityMultiPartUploadTask];
1250
1238
}];
@@ -1956,11 +1944,11 @@ - (void)resumeAllMultipartUploadsWithCompletionHandler:(nullable AWSS3TransferUt
1956
1944
#pragma mark - Internal helper methods
1957
1945
1958
1946
- (AWSTask *)callFinishMultiPartForUploadTask : (AWSS3TransferUtilityMultiPartUploadTask *)uploadTask {
1959
- NSMutableArray *completedParts = [NSMutableArray arrayWithCapacity: [ uploadTask.completedPartsSet count ] ];
1947
+ NSMutableArray *completedParts = [NSMutableArray arrayWithCapacity: uploadTask.completedTasks. count];
1960
1948
NSMutableDictionary *tempDictionary = [NSMutableDictionary new ];
1961
1949
1962
1950
// Create a new Dictionary with the partNumber as the Key
1963
- for (AWSS3TransferUtilityUploadSubTask *subTask in uploadTask.completedPartsSet ) {
1951
+ for (AWSS3TransferUtilityUploadSubTask *subTask in uploadTask.completedTasks ) {
1964
1952
[tempDictionary setObject: subTask forKey: subTask.partNumber];
1965
1953
}
1966
1954
@@ -2345,33 +2333,31 @@ - (void)URLSession:(NSURLSession *)session
2345
2333
transferUtilityUploadTask.expression .progressBlock (transferUtilityUploadTask, transferUtilityUploadTask.progress );
2346
2334
}
2347
2335
}
2348
- }
2349
- else if ([transferUtilityTask isKindOfClass: [AWSS3TransferUtilityMultiPartUploadTask class ]]) {
2336
+ } else if ([transferUtilityTask isKindOfClass: [AWSS3TransferUtilityMultiPartUploadTask class ]]) {
2350
2337
// Get the multipart upload task
2351
2338
AWSS3TransferUtilityMultiPartUploadTask *transferUtilityMultiPartUploadTask = [self .taskDictionary objectForKey: @(task.taskIdentifier)];
2352
2339
// Get multipart upload sub task
2353
- AWSS3TransferUtilityUploadSubTask *subTask = [transferUtilityMultiPartUploadTask.inProgressPartsDictionary objectForKey: @( task.taskIdentifier) ];
2340
+ AWSS3TransferUtilityUploadSubTask *subTask = [transferUtilityMultiPartUploadTask inProgressTaskForTaskIdentifier: task.taskIdentifier];
2354
2341
subTask.totalBytesSent = totalBytesSent;
2355
-
2356
-
2342
+
2357
2343
// Calculate the total sent so far
2358
2344
int64_t totalSentSoFar = 0 ;
2359
2345
// Create a new Dictionary with the partNumber as the Key
2360
2346
NSMutableDictionary *completedPartsByPartNumber = [NSMutableDictionary new ];
2361
- for (AWSS3TransferUtilityUploadSubTask *subTask in transferUtilityMultiPartUploadTask.completedPartsSet ) {
2347
+ for (AWSS3TransferUtilityUploadSubTask *subTask in transferUtilityMultiPartUploadTask.completedTasks ) {
2362
2348
[completedPartsByPartNumber setObject: subTask forKey: subTask.partNumber];
2363
2349
}
2364
- for (AWSS3TransferUtilityUploadSubTask *aSubTask in [ completedPartsByPartNumber allValues ] ) {
2350
+ for (AWSS3TransferUtilityUploadSubTask *aSubTask in completedPartsByPartNumber. allValues ) {
2365
2351
totalSentSoFar += aSubTask.totalBytesExpectedToSend ;
2366
2352
}
2367
- for (AWSS3TransferUtilityUploadSubTask *aSubTask in [ transferUtilityMultiPartUploadTask.inProgressPartsDictionary allValues ] ) {
2353
+ for (AWSS3TransferUtilityUploadSubTask *aSubTask in transferUtilityMultiPartUploadTask.inProgressTasks ) {
2368
2354
totalSentSoFar += aSubTask.totalBytesSent ;
2369
2355
}
2370
-
2356
+
2371
2357
if (transferUtilityMultiPartUploadTask.progress .completedUnitCount != totalSentSoFar ) {
2372
2358
transferUtilityMultiPartUploadTask.progress .totalUnitCount = [transferUtilityMultiPartUploadTask.contentLength longLongValue ];
2373
2359
transferUtilityMultiPartUploadTask.progress .completedUnitCount = totalSentSoFar;
2374
-
2360
+
2375
2361
// execute the callback to the progressblock if present.
2376
2362
if (transferUtilityMultiPartUploadTask.expression .progressBlock ) {
2377
2363
AWSDDLogDebug (@" Total %lld , ProgressSoFar %lld " , transferUtilityMultiPartUploadTask.progress .totalUnitCount , transferUtilityMultiPartUploadTask.progress .completedUnitCount );
@@ -2399,21 +2385,20 @@ - (void)completeTask:(AWSS3TransferUtilityTask *)task removeCompletedTask:(BOOL)
2399
2385
}
2400
2386
2401
2387
- (void )cleanupForMultiPartUploadTask : (AWSS3TransferUtilityMultiPartUploadTask *)task {
2402
-
2403
2388
// Add it to list of completed Tasks
2404
2389
[self .completedTaskDictionary setObject: task forKey: task.transferID];
2405
-
2390
+
2406
2391
// Remove all entries from taskDictionary.
2407
- for ( AWSS3TransferUtilityUploadSubTask *subTask in [ task.inProgressPartsDictionary allValues ] ) {
2392
+ for (AWSS3TransferUtilityUploadSubTask *subTask in task.inProgressTasks ) {
2408
2393
[self unregisterTaskIdentifier: subTask.taskIdentifier];
2409
2394
[self removeFile: subTask.file];
2410
2395
}
2411
-
2396
+
2412
2397
// Remove temporary file if required.
2413
2398
if (task.temporaryFileCreated ) {
2414
2399
[self removeFile: task.file];
2415
2400
}
2416
-
2401
+
2417
2402
// Remove data from the Database.
2418
2403
[AWSS3TransferUtilityDatabaseHelper deleteTransferRequestFromDB: task.transferID databaseQueue: _databaseQueue];
2419
2404
}
0 commit comments