1// Copyright 2015-present 650 Industries. All rights reserved. 2 3#import <ABI47_0_0EXFileSystem/ABI47_0_0EXTaskHandlersManager.h> 4 5@interface ABI47_0_0EXTaskHandlersManager () 6 7@property (nonatomic, strong) NSMutableDictionary<NSString *, NSURLSessionTask *> *resumableDownloads; 8 9@end 10 11@implementation ABI47_0_0EXTaskHandlersManager 12 13- (instancetype)init 14{ 15 if (self = [super init]) { 16 _resumableDownloads = [NSMutableDictionary dictionary]; 17 } 18 return self; 19} 20 21- (void)registerTask:(NSURLSessionTask *)task uuid:(NSString *)uuid 22{ 23 _resumableDownloads[uuid] = task; 24} 25 26- (NSURLSessionTask * _Nullable)taskForId:(NSString *)uuid 27{ 28 return _resumableDownloads[uuid]; 29} 30 31- (NSURLSessionDownloadTask * _Nullable)downloadTaskForId:(NSString *)uuid 32{ 33 NSURLSessionTask *task = [self taskForId:uuid]; 34 if ([task isKindOfClass:[NSURLSessionDownloadTask class]]) { 35 return (NSURLSessionDownloadTask *)task; 36 } 37 38 return nil; 39} 40 41- (NSURLSessionUploadTask * _Nullable)uploadTaskForId:(NSString *)uuid 42{ 43 NSURLSessionTask *task = [self taskForId:uuid]; 44 if ([task isKindOfClass:[NSURLSessionUploadTask class]]) { 45 return (NSURLSessionDownloadTask *)task; 46 } 47 48 return nil; 49} 50 51- (void)unregisterTask:(NSString *)uuid 52{ 53 [_resumableDownloads removeObjectForKey:uuid]; 54} 55 56@end 57