| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- //
- // RAUploadManager.h
- // test_autolayout
- //
- // Created by Ray on 02/05/2017.
- // Copyright © 2017 USAI. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "RAUploadOperation.h"
- #import "Reachability.h"
- //@class RAUploadManager;
- ////@protocol RAUploadManagerDelegate <NSObject>
- //
- ////@required
- ////- (void)uploadManager:(RAUploadManager *)manager didRemoveTasks:(NSArray *)tasks;
- //
- //@end
- FOUNDATION_EXTERN NSString *const UPLOAD_FINISH_NOTIFICATION;
- FOUNDATION_EXTERN NSString *const UPLOAD_COUNT_CHANGE_NOTIFICATION;
- FOUNDATION_EXTERN NSString *const UPLOAD_REFRESH_UI_NOTIFICATION;
- typedef NS_ENUM(NSInteger, QueueStatus) {
- QueueStatusDefault = 0,
- QueueStatusAdd = 1,
- QueueStatusError = 2,
- QueueStatusFinishWithError = 3,
- QueueStatusFinish = 4
- };
- extern NSString *const kUploadSetting;
- #pragma mark - Configure
- @interface RAUPloadManagerConfigure : NSObject
- @property (nonatomic,assign) BOOL autoRemoveFinish;
- @property (nonatomic,assign) BOOL autoRemoveError;
- @property (nonatomic,assign) BOOL autoUpload;
- @property (nonatomic,assign) BOOL onlyWIFI;
- @property (nonatomic,assign) BOOL monitorNetwork;///<网络断开,停止所有任务。网络恢复重启任务,除了Error状态下的任务
- @property (nonatomic,assign) int retryCount;
- @property (nonatomic,assign) NSTimeInterval retryTimeIntetval;
- @end
- #pragma mark - Upload Manager
- @interface RAUploadManager : NSObject
- @property (assign) int maxThread;
- @property (assign) int activeThread;
- @property (assign) int maxRetry;
- @property (nonatomic,assign) int retryTimeInterval;
- @property (nonatomic,assign) BOOL monitorNetwork;///<网络断开,停止所有任务。网络恢复重启任务,除了Error状态下的任务
- @property (assign) TaskStatus newtaskStatus;
- @property (strong,nonatomic) NSMutableArray* arr_queue;
- //-(void) upload:(NSString*) url;
- -(void) addTask:(NSMutableDictionary*) task;
- -(void) addTasks:(NSMutableArray*) tasks;
- @property (nonatomic,assign) BOOL onlyWiFi;
- @property (assign) bool removeFinish;
- //@property (assign) bool removeError;
- @property (assign) bool autoStart;
- @property (assign) QueueStatus queue_status;
- @property (nonatomic,strong) Reachability *reach;
- //@property (strong,nonatomic) NSLock* arr_queue_lock;
- @property (strong,nonatomic) NSOperationQueue* operation_queue;
- + (instancetype)sharedManager;
- + (void)configureUploadManager:(void(^)(RAUPloadManagerConfigure *configure))configure;
- -(void) startTask:(NSMutableDictionary*) task;
- -(void) removeTask:(NSMutableDictionary*) task;
- -(void) removeTasks:(NSMutableArray*) tasks;
- -(void) stopAllTasks;
- -(void) saveTasks;
- //@property (nonatomic,weak) id <RAUploadManagerDelegate> delegate;
- - (BOOL)canUpload;
- - (void)addRetryOperation:(RAUploadOperation *)operation;
- - (BOOL)reachable;
- @end
|