RAUploadManager.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. //
  2. // RAUploadManager.h
  3. // test_autolayout
  4. //
  5. // Created by Ray on 02/05/2017.
  6. // Copyright © 2017 USAI. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "RAUploadOperation.h"
  10. #import "Reachability.h"
  11. //@class RAUploadManager;
  12. ////@protocol RAUploadManagerDelegate <NSObject>
  13. //
  14. ////@required
  15. ////- (void)uploadManager:(RAUploadManager *)manager didRemoveTasks:(NSArray *)tasks;
  16. //
  17. //@end
  18. FOUNDATION_EXTERN NSString *const UPLOAD_FINISH_NOTIFICATION;
  19. FOUNDATION_EXTERN NSString *const UPLOAD_COUNT_CHANGE_NOTIFICATION;
  20. FOUNDATION_EXTERN NSString *const UPLOAD_REFRESH_UI_NOTIFICATION;
  21. typedef NS_ENUM(NSInteger, QueueStatus) {
  22. QueueStatusDefault = 0,
  23. QueueStatusAdd = 1,
  24. QueueStatusError = 2,
  25. QueueStatusFinishWithError = 3,
  26. QueueStatusFinish = 4
  27. };
  28. extern NSString *const kUploadSetting;
  29. #pragma mark - Configure
  30. @interface RAUPloadManagerConfigure : NSObject
  31. @property (nonatomic,assign) BOOL autoRemoveFinish;
  32. @property (nonatomic,assign) BOOL autoRemoveError;
  33. @property (nonatomic,assign) BOOL autoUpload;
  34. @property (nonatomic,assign) BOOL onlyWIFI;
  35. @property (nonatomic,assign) BOOL monitorNetwork;///<网络断开,停止所有任务。网络恢复重启任务,除了Error状态下的任务
  36. @property (nonatomic,assign) NSUInteger retryCount;
  37. @property (nonatomic,assign) NSTimeInterval retryTimeIntetval;
  38. @end
  39. #pragma mark - Upload Manager
  40. @interface RAUploadManager : NSObject
  41. @property (assign) int maxThread;
  42. @property (assign) int activeThread;
  43. @property (assign) int maxRetry;
  44. @property (nonatomic,assign) int retryTimeInterval;
  45. @property (nonatomic,assign) BOOL monitorNetwork;///<网络断开,停止所有任务。网络恢复重启任务,除了Error状态下的任务
  46. @property (assign) TaskStatus newtaskStatus;
  47. @property (strong,nonatomic) NSMutableArray* arr_queue;
  48. //-(void) upload:(NSString*) url;
  49. -(void) addTask:(NSMutableDictionary*) task;
  50. -(void) addTasks:(NSMutableArray*) tasks;
  51. @property (nonatomic,assign) BOOL onlyWiFi;
  52. @property (assign) bool removeFinish;
  53. //@property (assign) bool removeError;
  54. @property (assign) bool autoStart;
  55. @property (assign) QueueStatus queue_status;
  56. @property (nonatomic,strong) Reachability *reach;
  57. //@property (strong,nonatomic) NSLock* arr_queue_lock;
  58. @property (strong,nonatomic) NSOperationQueue* operation_queue;
  59. + (void)configureUploadManager:(void(^)(RAUPloadManagerConfigure *configure))configure;
  60. -(void) startTask:(NSMutableDictionary*) task;
  61. -(void) removeTask:(NSMutableDictionary*) task;
  62. -(void) removeTasks:(NSMutableArray*) tasks;
  63. -(void) stopAllTasks;
  64. -(void) saveTasks;
  65. //@property (nonatomic,weak) id <RAUploadManagerDelegate> delegate;
  66. - (BOOL)canUpload;
  67. - (void)addRetryOperation:(RAUploadOperation *)operation;
  68. @end