猎豆优选

UMSocialTask.h 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //
  2. // UMSocialTask.h
  3. // UMSocialSDK
  4. //
  5. // Created by 张军华 on 16/8/11.
  6. // Copyright © 2016年 dongjianxiong. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "UMSocialTaskConfig.h"
  10. @class UMSocialTaskOperation;
  11. @class UMSocialTask;
  12. NS_ASSUME_NONNULL_BEGIN
  13. /**
  14. * task的回调代理
  15. */
  16. @protocol UMSocialTaskDelegate <NSObject>
  17. -(void)handleTask:(UMSocialTask*)task withError:(NSError*) error;
  18. @end
  19. /**
  20. * 所有网络请求的基本任务类
  21. */
  22. @interface UMSocialTask : NSObject<NSCopying,NSCoding>
  23. @property(nonatomic,assign)UMSocialHttpMethodType httpMethodType; //http请求类型
  24. @property(nonatomic,copy)NSString* hostUrlPath;//http请求的host
  25. @property(nonatomic,copy)NSString* relatedUrlPath; //http请求的相对url
  26. @property(nonatomic,strong)NSDictionary* paramDic; //post或者get请求需要的字典
  27. @property(nonatomic,copy)UMSocialTaskCompletion completion;//回调
  28. @property(nonatomic,readonly,assign)NSInteger taskIdentifier; //唯一id
  29. @property(nonatomic,readonly,assign)NSInteger retryCount;//retryCount
  30. @property(nonatomic,readonly,assign)UMSoicalTaskState taskState;//task的状态
  31. #pragma mark - override
  32. /**
  33. * 创建的NSURLRequest
  34. *
  35. * @return @see NSURLRequest
  36. * @discuss 用户可以重载此函数,自己实现makeURLRequest的逻辑,
  37. * 如果不重载此函数会用
  38. * 默认会用httpMethodType,relatedUrlPath,paramDic来产生对应的NSURLRequest
  39. */
  40. -(NSURLRequest*)makeURLRequest;
  41. #pragma mark - private
  42. /**
  43. * 在指定的operationTaskQueue的执行对应task的任务
  44. *
  45. * @param operationTaskQueue @see NSOperationQueue
  46. * @discuss 本函数不需要直接调用,UMSocialNetworkCore会自动调用
  47. * @see UMSocialTaskManager -(void)addAndExcuteSocialTask:(UMSocialTask*)task
  48. */
  49. -(void)executeTaskWithOperationQueue:(NSOperationQueue*)operationTaskQueue;
  50. @end
  51. NS_ASSUME_NONNULL_END