//
//  BPNetWorkService.h
//  BreakPointDownload
//
//  Created by 黄亚州 on 2017/5/30.
//  Copyright © 2017年 黄亚州. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "BPNetWorkConfig.h"

@class BPDownloadContent;
@interface BPNetWorkService : NSObject

/**
 * @description 单例
 */
+ (BPNetWorkService *)shared;

/**
 * @description 移除下载任务管理器
 * @param type 下载管理器的类型
 */
- (void)removeDownloadManagerForType:(EDownloadType)type;

/**
 * @description 添加下载任务
 * @param aContent 下载所需数据
 * @param aProgress 下载进度block
 * @param aComplete 下载完成或者失败block
 */
- (void)downloadContent:(BPDownloadContent *)aContent onProgress:(void(^)(int64_t completeBytes, int64_t totalBytes))aProgress onComplete:(void(^)(BPDownloadContent* aContent, NSError* aError))aComplete;

/**
 * @description 添加下载任务
 * @param type 下载管理器的类型
 * @param aContent 下载所需数据
 * @param aProgress 下载进度block
 * @param aComplete 下载完成或者失败block
 */
- (void)downloadType:(EDownloadType)type content:(BPDownloadContent *)aContent onProgress:(void(^)(int64_t completeBytes, int64_t totalBytes))aProgress onComplete:(void(^)(BPDownloadContent* aContent, NSError* aError))aComplete;

/**
 * @description 取消下载任务
 * @param urlString 下载地址
 */
- (void)cancelUrlString:(NSString *)urlString;

/**
 * @description 取消下载任务
 * @param type 下载管理器的类型
 * @param urlString 下载地址
 */
- (void)canceltype:(EDownloadType)type UrlString:(NSString *)urlString;

/**
 * @description 取消block进度回调
 * @param type 下载管理器的类型
 */
- (void)cancelBlockType:(EDownloadType)type;

@end
