RAUploadManager.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. typedef NS_ENUM(NSInteger, QueueStatus) {
  21. QueueStatusDefault = 0,
  22. QueueStatusAdd = 1,
  23. QueueStatusError = 2,
  24. QueueStatusFinishWithError = 3,
  25. QueueStatusFinish = 4
  26. };
  27. extern NSString *const kUploadSetting;
  28. #pragma mark - Configure
  29. @interface RAUPloadManagerConfigure : NSObject
  30. @property (nonatomic,assign) BOOL autoRemoveFinish;
  31. @property (nonatomic,assign) BOOL autoRemoveError;
  32. @property (nonatomic,assign) BOOL autoUpload;
  33. @property (nonatomic,assign) BOOL onlyWIFI;
  34. @property (nonatomic,assign) NSUInteger retryCount;
  35. @property (nonatomic,assign) NSTimeInterval retryTimeIntetval;
  36. @end
  37. #pragma mark - Upload Manager
  38. @interface RAUploadManager : NSObject
  39. @property (assign) int maxThread;
  40. @property (assign) int activeThread;
  41. @property (assign) int maxRetry;
  42. @property (nonatomic,assign) int retryTimeInterval;
  43. @property (assign) TaskStatus newtaskStatus;
  44. @property (strong,nonatomic) NSMutableArray* arr_queue;
  45. //-(void) upload:(NSString*) url;
  46. -(void) addTask:(NSMutableDictionary*) task;
  47. -(void) addTasks:(NSMutableArray*) tasks;
  48. @property (nonatomic,assign) BOOL onlyWiFi;
  49. @property (assign) bool removeFinish;
  50. //@property (assign) bool removeError;
  51. @property (assign) bool autoStart;
  52. @property (assign) QueueStatus queue_status;
  53. @property (nonatomic,strong) Reachability *reach;
  54. //@property (strong,nonatomic) NSLock* arr_queue_lock;
  55. @property (strong,nonatomic) NSOperationQueue* operation_queue;
  56. + (void)configureUploadManager:(void(^)(RAUPloadManagerConfigure *configure))configure;
  57. -(void) startTask:(NSMutableDictionary*) task;
  58. -(void) removeTask:(NSMutableDictionary*) task;
  59. -(void) removeTasks:(NSMutableArray*) tasks;
  60. -(void) stopAllTasks;
  61. -(void) saveTasks;
  62. //@property (nonatomic,weak) id <RAUploadManagerDelegate> delegate;
  63. - (BOOL)canUpload;
  64. - (void)addRetryOperation:(RAUploadOperation *)operation;
  65. @end