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