Skip to content

Commit efa5ef3

Browse files
Brennan StehlingbrennanMKE
authored andcommitted
WIP
1 parent c87594b commit efa5ef3

File tree

3 files changed

+21
-33
lines changed

3 files changed

+21
-33
lines changed

AWSS3/AWSS3TransferUtility.m

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

AWSS3/AWSS3TransferUtilityTasks.m

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ - (BOOL)isDone {
153153
return self.inProgressPartsDictionary.allValues;
154154
}
155155

156-
- (NSArray<AWSS3TransferUtilityUploadSubTask *> *)completedTask {
156+
- (NSArray<AWSS3TransferUtilityUploadSubTask *> *)completedTasks {
157157
return self.completedPartsSet.allObjects;
158158
}
159159

@@ -312,6 +312,9 @@ - (void)addUploadSubTask:(AWSS3TransferUtilityUploadSubTask *)subTask {
312312
self.waitingPartsDictionary[@(subTask.taskIdentifier)] = subTask;
313313
} else if (subTask.status == AWSS3TransferUtilityTransferStatusInProgress) {
314314
self.inProgressPartsDictionary[@(subTask.taskIdentifier)] = subTask;
315+
316+
} else if (subTask.status == AWSS3TransferUtilityTransferStatusCompleted) {
317+
[self.completedPartsSet addObject:subTask];
315318
} else {
316319
AWSDDLogDebug(@"Sub Task status not supported: %lu", subTask.status);
317320
NSCAssert(NO, @"Status not supported");

AWSS3/AWSS3TransferUtility_private.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ internalDictionaryToAddSubTaskTo:(NSMutableDictionary *)internalDictionaryToAddS
8686

8787
@property (readonly) NSArray<AWSS3TransferUtilityUploadSubTask *> * waitingTasks;
8888
@property (readonly) NSArray<AWSS3TransferUtilityUploadSubTask *> * inProgressTasks;
89-
@property (readonly) NSArray<AWSS3TransferUtilityUploadSubTask *> * completedTask;
89+
@property (readonly) NSArray<AWSS3TransferUtilityUploadSubTask *> * completedTasks;
9090

9191
@property (weak, nonatomic) AWSS3TransferUtility *transferUtility;
9292

0 commit comments

Comments
 (0)