-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRFImageWork.m
112 lines (96 loc) · 1.78 KB
/
RFImageWork.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
//
// RFImageWork.m
// XiaoXunTong
//
// Created by gouzhehua on 14-8-11.
// Copyright (c) 2014年 GZH. All rights reserved.
//
#import "RFImageWork.h"
#import "RFNetworkKit.h"
#import "RFCmdRequest.h"
#import "RF.h"
@implementation RFImageWork
@synthesize workRequest = _workRequest;
@synthesize downloadingBlock = _downloadingBlock;
@synthesize image = _image;
- (id)init
{
self = [super init];
if (self)
{
}
return self;
}
- (id)initWithUrl:(NSString *)anUrl
{
self = [super init];
if (self)
{
_workRequest = [[RFCmdRequest alloc] initWithCmd:self.workName url:anUrl args:nil delegate:self config:nil];
_workRequest.cacheType = RFCmdRequestCacheTypeCacheFirst;
}
return self;
}
- (void)startByOwner:(id)obj
{
if (obj == nil)
{
[[RFWorkMgr sharedImageMgr] addWork:self];
}
else
{
[obj rfRunImageWork:self];
}
}
- (void)dealloc
{
if (_workRequest != nil)
{
[_workRequest cancel];
SAFE_ARC_RELEASE(_workRequest);
_workRequest = nil;
}
SAFE_ARC_SUPER_DEALLOC();
}
- (void)start
{
if ([[RFNetworkKit shared] isConnect])
{
[super start];
}
else
{
dispatch_async(dispatch_get_main_queue(), ^(){[SVProgressHUD showErrorWithStatus:kRFCmdMsgNoNet];});
[self setWorkFinish];
}
}
- (void)main
{
[_workRequest startWithType:RFCmdRequestTypeGet];
}
- (void)cancelProc
{
if (_workRequest != nil)
{
[_workRequest cancel];
_workRequest = nil;
}
[super cancelProc];
}
- (void)onCmdRequestFinish:(RFCmdBaseRequest *)aRequest
{
self.image = [UIImage imageWithData:aRequest.cmdResult.buffer];
[self enterSuccess];
}
- (void)onCmdRequestFailed:(RFCmdBaseRequest *)aRequest
{
[self enterFailed];
}
- (void)onCmdRequestDownloading:(RFCmdBaseRequest *)aRequest
{
if (_downloadingBlock != nil)
{
self.downloadingBlock(self);
}
}
@end