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
//
// UMSocialTask.h
// UMSocialSDK
//
// Created by 张军华 on 16/8/11.
// Copyright © 2016年 dongjianxiong. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "UMSocialTaskConfig.h"
@class UMSocialTaskOperation;
@class UMSocialTask;
NS_ASSUME_NONNULL_BEGIN
/**
* task的回调代理
*/
@protocol UMSocialTaskDelegate <NSObject>
-(void)handleTask:(UMSocialTask*)task withError:(NSError*) error;
@end
/**
* 所有网络请求的基本任务类
*/
@interface UMSocialTask : NSObject<NSCopying,NSCoding>
@property(nonatomic,assign)UMSocialHttpMethodType httpMethodType; //http请求类型
@property(nonatomic,copy)NSString* hostUrlPath;//http请求的host
@property(nonatomic,copy)NSString* relatedUrlPath; //http请求的相对url
@property(nonatomic,strong)NSDictionary* paramDic; //post或者get请求需要的字典
@property(nonatomic,copy)UMSocialTaskCompletion completion;//回调
@property(nonatomic,readonly,assign)NSInteger taskIdentifier; //唯一id
@property(nonatomic,readonly,assign)NSInteger retryCount;//retryCount
@property(nonatomic,readonly,assign)UMSoicalTaskState taskState;//task的状态
#pragma mark - override
/**
* 创建的NSURLRequest
*
* @return @see NSURLRequest
* @discuss 用户可以重载此函数,自己实现makeURLRequest的逻辑,
* 如果不重载此函数会用
* 默认会用httpMethodType,relatedUrlPath,paramDic来产生对应的NSURLRequest
*/
-(NSURLRequest*)makeURLRequest;
#pragma mark - private
/**
* 在指定的operationTaskQueue的执行对应task的任务
*
* @param operationTaskQueue @see NSOperationQueue
* @discuss 本函数不需要直接调用,UMSocialNetworkCore会自动调用
* @see UMSocialTaskManager -(void)addAndExcuteSocialTask:(UMSocialTask*)task
*/
-(void)executeTaskWithOperationQueue:(NSOperationQueue*)operationTaskQueue;
@end
NS_ASSUME_NONNULL_END