RAUploadManager.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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) int retryCount;
  37. @property (nonatomic,assign) NSTimeInterval retryTimeIntetval;
  38. @property (nonatomic,assign) BOOL compressImage;
  39. @end
  40. #pragma mark - Upload Manager
  41. @interface RAUploadManager : NSObject
  42. @property (assign) int maxThread;
  43. @property (assign) int activeThread;
  44. @property (assign) int maxRetry;
  45. @property (nonatomic,assign) int retryTimeInterval;
  46. @property (nonatomic,assign) BOOL monitorNetwork;///<网络断开,停止所有任务。网络恢复重启任务,除了Error状态下的任务
  47. @property (assign) TaskStatus newtaskStatus;
  48. @property (strong,nonatomic) NSMutableArray* arr_queue;
  49. //-(void) upload:(NSString*) url;
  50. -(void) addTask:(NSMutableDictionary*) task;
  51. -(void) addTasks:(NSMutableArray*) tasks;
  52. @property (nonatomic,assign) BOOL onlyWiFi;
  53. @property (assign) bool removeFinish;
  54. //@property (assign) bool removeError;
  55. @property (assign) bool autoStart;
  56. @property (assign) QueueStatus queue_status;
  57. @property (nonatomic,strong) Reachability *reach;
  58. //@property (strong,nonatomic) NSLock* arr_queue_lock;
  59. @property (strong,nonatomic) NSOperationQueue* operation_queue;
  60. + (instancetype)sharedManager;
  61. + (void)configureUploadManager:(void(^)(RAUPloadManagerConfigure *configure))configure;
  62. -(void) startTask:(NSMutableDictionary*) task;
  63. -(void) removeTask:(NSMutableDictionary*) task;
  64. -(void) removeTasks:(NSMutableArray*) tasks;
  65. -(void) stopAllTasks;
  66. -(void) saveTasks;
  67. //@property (nonatomic,weak) id <RAUploadManagerDelegate> delegate;
  68. - (BOOL)canUpload;
  69. - (void)addRetryOperation:(RAUploadOperation *)operation;
  70. - (BOOL)reachable;
  71. @end