94 lines
3.5 KiB
Objective-C
94 lines
3.5 KiB
Objective-C
/*
|
|
* This file is part of the SDWebImage package.
|
|
* (c) Olivier Poitrey <rs@dailymotion.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import "SDWebImageCompat.h"
|
|
|
|
typedef NS_ENUM(NSInteger, SDWebImageDownloaderExecutionOrder) {
|
|
/**
|
|
* Default value. All download operations will execute in queue style (first-in-first-out).
|
|
*/
|
|
SDWebImageDownloaderFIFOExecutionOrder,
|
|
|
|
/**
|
|
* All download operations will execute in stack style (last-in-first-out).
|
|
*/
|
|
SDWebImageDownloaderLIFOExecutionOrder
|
|
};
|
|
|
|
@interface SDWebImageDownloaderConfig : NSObject <NSCopying>
|
|
|
|
/**
|
|
Gets the default downloader config used for shared instance or initialization when it does not provide any downloader config. Such as `SDWebImageDownloader.sharedDownloader`.
|
|
@note You can modify the property on default downloader config, which can be used for later created downloader instance. The already created downloader instance does not get affected.
|
|
*/
|
|
@property (nonatomic, class, readonly, nonnull) SDWebImageDownloaderConfig *defaultDownloaderConfig;
|
|
|
|
/**
|
|
* The maximum number of concurrent downloads.
|
|
* Defaults to 6.
|
|
*/
|
|
@property (nonatomic, assign) NSInteger maxConcurrentDownloads;
|
|
|
|
/**
|
|
* The timeout value (in seconds) for each download operation.
|
|
* Defaults to 15.0.
|
|
*/
|
|
@property (nonatomic, assign) NSTimeInterval downloadTimeout;
|
|
|
|
/**
|
|
* The minimum interval about progress percent during network downloading. Which means the next progress callback and current progress callback's progress percent difference should be larger or equal to this value.
|
|
* The value should be 0.0-1.0.
|
|
* @note If you're using progressive decoding feature, this will also effect the image refresh rate.
|
|
* @note This value may enhance the performance if you don't want progress callback too frequently.
|
|
* Defaults to 0, which means each time we receive the new data from URLSession, we callback the progressBlock immediately.
|
|
*/
|
|
@property (nonatomic, assign) NSTimeInterval minimumProgressInterval;
|
|
|
|
/**
|
|
* The custom session configuration in use by NSURLSession. If you don't provide one, we will use `defaultSessionConfiguration` instead.
|
|
* Defatuls to nil.
|
|
* @note This property does not support dynamic changes, means it's immutable after the downloader instance initialized.
|
|
*/
|
|
@property (nonatomic, strong, nullable) NSURLSessionConfiguration *sessionConfiguration;
|
|
|
|
/**
|
|
* Gets/Sets a subclass of `SDWebImageDownloaderOperation` as the default
|
|
* `NSOperation` to be used each time SDWebImage constructs a request
|
|
* operation to download an image.
|
|
* Defaults to nil.
|
|
* @note Passing `NSOperation<SDWebImageDownloaderOperation>` to set as default. Passing `nil` will revert to `SDWebImageDownloaderOperation`.
|
|
*/
|
|
@property (nonatomic, assign, nullable) Class operationClass;
|
|
|
|
/**
|
|
* Changes download operations execution order.
|
|
* Defaults to `SDWebImageDownloaderFIFOExecutionOrder`.
|
|
*/
|
|
@property (nonatomic, assign) SDWebImageDownloaderExecutionOrder executionOrder;
|
|
|
|
/**
|
|
* Set the default URL credential to be set for request operations.
|
|
* Defaults to nil.
|
|
*/
|
|
@property (nonatomic, copy, nullable) NSURLCredential *urlCredential;
|
|
|
|
/**
|
|
* Set username using for HTTP Basic authentication.
|
|
* Defaults to nil.
|
|
*/
|
|
@property (nonatomic, copy, nullable) NSString *username;
|
|
|
|
/**
|
|
* Set password using for HTTP Basic authentication.
|
|
* Defautls to nil.
|
|
*/
|
|
@property (nonatomic, copy, nullable) NSString *password;
|
|
|
|
@end
|