-
Notifications
You must be signed in to change notification settings - Fork 0
/
LMSOperationExecutor.m
61 lines (54 loc) · 1.5 KB
/
LMSOperationExecutor.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
* MLKOperationExecutor.h
* TPEducation
*
* Created by Accenture on 4/22/15.
* Copyright (c) 2015 Accenture. All rights reserved.
*/
#import "MLKOperationExecutor.h"
#import "MLKBackgroundFetchOperation.h"
#import "MLKOperation.h"
@interface MLKOperationExecutor ()
@property (nonatomic) enum TPEOperationType type;
@property (weak, nonatomic) NSOperationQueue *queue;
@property (strong, nonatomic) NSMutableArray *operationArray;
@property (nonatomic) BOOL bForeground;
@end
@implementation MLKOperationExecutor
- (instancetype)initWithQueue:(NSOperationQueue*)queue forOperationType:(enum TPEOperationType)type
{
if (self == [super init])
{
_type = type;
_queue = queue;
_operationArray = [[NSMutableArray alloc] init];
}
return self;
}
- (NSMutableArray*)operationArray
{
return _operationArray;
}
- (void)enqueueOperationWithParams:(id)parameters handler:(void (^)(UIBackgroundFetchResult))completionHandler
{
switch (_type)
{
case MLKBackgroundFetchType:
{
MLKBackgroundFetchOperation *fetchOperation = [[MLKBackgroundFetchOperation alloc] initWithParameters:parameters completionHandler:completionHandler];
[_operationArray addObject:fetchOperation];
}
break;
case MLKDownloadType:
{
}
break;
default:
break;
}
}
- (void)runAndWaitUntilFinish:(BOOL)wait
{
[_queue addOperations:_operationArray waitUntilFinished:wait];
}
@end