Skip to content

Commit db68875

Browse files
author
Artur Chrusciel
committed
Shared instance used
1 parent 8dd310d commit db68875

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

ios/RNFetchBlobNetwork.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#import <Foundation/Foundation.h>
1010
#import "RNFetchBlobProgress.h"
1111
#import "RNFetchBlobFS.h"
12+
#import "RNFetchBlobRequest.h"
1213

1314
#if __has_include(<React/RCTAssert.h>)
1415
#import <React/RCTBridgeModule.h>
@@ -22,8 +23,10 @@
2223

2324
@interface RNFetchBlobNetwork : NSObject <NSURLSessionDelegate, NSURLSessionTaskDelegate, NSURLSessionDataDelegate>
2425

26+
@property(nonnull, nonatomic) NSOperationQueue *taskQueue;
27+
@property(nonnull, nonatomic) NSMapTable<NSString*, RNFetchBlobRequest*> * requestsTable;
2528

26-
+ (_Nullable instancetype)sharedInstance;
29+
+ (RNFetchBlobNetwork* _Nullable)sharedInstance;
2730
+ (NSMutableDictionary * _Nullable ) normalizeHeaders:(NSDictionary * _Nullable)headers;
2831
+ (void) cancelRequest:(NSString * _Nonnull)taskId;
2932
+ (void) emitExpiredTasks;

ios/RNFetchBlobNetwork.m

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#import "RNFetchBlob.h"
1414
#import "RNFetchBlobConst.h"
1515
#import "RNFetchBlobProgress.h"
16-
#import "RNFetchBlobRequest.h"
1716

1817
#if __has_include(<React/RCTAssert.h>)
1918
#import <React/RCTRootView.h>
@@ -46,23 +45,21 @@ static void initialize_tables() {
4645

4746
@implementation RNFetchBlobNetwork
4847

49-
NSOperationQueue *taskQueue;
50-
NSMapTable<NSString*, RNFetchBlobRequest*> * requestsTable;
5148

5249
- (id)init {
5350
self = [super init];
5451
if (self) {
55-
requestsTable = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableWeakMemory];
52+
self.requestsTable = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableWeakMemory];
5653

57-
taskQueue = [[NSOperationQueue alloc] init];
58-
taskQueue.qualityOfService = NSQualityOfServiceUtility;
59-
taskQueue.maxConcurrentOperationCount = 10;
54+
self.taskQueue = [[NSOperationQueue alloc] init];
55+
self.taskQueue.qualityOfService = NSQualityOfServiceUtility;
56+
self.taskQueue.maxConcurrentOperationCount = 10;
6057
}
6158

6259
return self;
6360
}
6461

65-
+ (instancetype)sharedInstance {
62+
+ (RNFetchBlobNetwork* _Nullable)sharedInstance {
6663
static id _sharedInstance = nil;
6764
static dispatch_once_t onceToken;
6865
dispatch_once(&onceToken, ^{
@@ -85,19 +82,19 @@ + (void) sendRequest:(__weak NSDictionary * _Nullable )options
8582
bridge:bridgeRef
8683
taskId:taskId
8784
withRequest:req
88-
taskOperationQueue:taskQueue
85+
taskOperationQueue:[self sharedInstance].taskQueue
8986
callback:callback];
9087

9188
@synchronized([RNFetchBlobNetwork class]) {
92-
[requestsTable setObject:request forKey:taskId];
89+
[[self sharedInstance].requestsTable setObject:request forKey:taskId];
9390
}
9491
}
9592

9693
+ (void) enableProgressReport:(NSString *) taskId config:(RNFetchBlobProgress *)config
9794
{
9895
if (config) {
9996
@synchronized ([RNFetchBlobNetwork class]) {
100-
[requestsTable objectForKey:taskId].progressConfig = config;
97+
[[self sharedInstance].requestsTable objectForKey:taskId].progressConfig = config;
10198
}
10299
}
103100
}
@@ -106,7 +103,7 @@ + (void) enableUploadProgress:(NSString *) taskId config:(RNFetchBlobProgress *)
106103
{
107104
if (config) {
108105
@synchronized ([RNFetchBlobNetwork class]) {
109-
[requestsTable objectForKey:taskId].uploadProgressConfig = config;
106+
[[self sharedInstance].requestsTable objectForKey:taskId].uploadProgressConfig = config;
110107
}
111108
}
112109
}
@@ -148,7 +145,7 @@ + (void) cancelRequest:(NSString *)taskId
148145
NSURLSessionDataTask * task;
149146

150147
@synchronized ([RNFetchBlobNetwork class]) {
151-
task = [requestsTable objectForKey:taskId].task;
148+
task = [[self sharedInstance].requestsTable objectForKey:taskId].task;
152149
}
153150

154151
if(task && task.state == NSURLSessionTaskStateRunning) {

0 commit comments

Comments
 (0)