129 lines
4.7 KiB
Objective-C
129 lines
4.7 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 "SDWebImageDownloader.h"
|
|
#import "SDWebImageOperation.h"
|
|
|
|
FOUNDATION_EXPORT NSString * _Nonnull const SDWebImageDownloadStartNotification;
|
|
FOUNDATION_EXPORT NSString * _Nonnull const SDWebImageDownloadReceiveResponseNotification;
|
|
FOUNDATION_EXPORT NSString * _Nonnull const SDWebImageDownloadStopNotification;
|
|
FOUNDATION_EXPORT NSString * _Nonnull const SDWebImageDownloadFinishNotification;
|
|
|
|
|
|
|
|
/**
|
|
Describes a downloader operation. If one wants to use a custom downloader op, it needs to inherit from `NSOperation` and conform to this protocol
|
|
For the description about these methods, see `SDWebImageDownloaderOperation`
|
|
*/
|
|
@protocol SDWebImageDownloaderOperationInterface <NSURLSessionTaskDelegate, NSURLSessionDataDelegate>
|
|
@required
|
|
- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request
|
|
inSession:(nullable NSURLSession *)session
|
|
options:(SDWebImageDownloaderOptions)options;
|
|
|
|
- (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
|
|
completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock;
|
|
|
|
- (BOOL)shouldDecompressImages;
|
|
- (void)setShouldDecompressImages:(BOOL)value;
|
|
|
|
- (nullable NSURLCredential *)credential;
|
|
- (void)setCredential:(nullable NSURLCredential *)value;
|
|
|
|
- (BOOL)cancel:(nullable id)token;
|
|
|
|
@optional
|
|
- (nullable NSURLSessionTask *)dataTask;
|
|
|
|
@end
|
|
|
|
|
|
@interface SDWebImageDownloaderOperation : NSOperation <SDWebImageDownloaderOperationInterface, SDWebImageOperation>
|
|
|
|
/**
|
|
* The request used by the operation's task.
|
|
*/
|
|
@property (strong, nonatomic, readonly, nullable) NSURLRequest *request;
|
|
|
|
/**
|
|
* The operation's task
|
|
*/
|
|
@property (strong, nonatomic, readonly, nullable) NSURLSessionTask *dataTask;
|
|
|
|
|
|
@property (assign, nonatomic) BOOL shouldDecompressImages;
|
|
|
|
/**
|
|
* Was used to determine whether the URL connection should consult the credential storage for authenticating the connection.
|
|
* @deprecated Not used for a couple of versions
|
|
*/
|
|
@property (nonatomic, assign) BOOL shouldUseCredentialStorage __deprecated_msg("Property deprecated. Does nothing. Kept only for backwards compatibility");
|
|
|
|
/**
|
|
* The credential used for authentication challenges in `-URLSession:task:didReceiveChallenge:completionHandler:`.
|
|
*
|
|
* This will be overridden by any shared credentials that exist for the username or password of the request URL, if present.
|
|
*/
|
|
@property (nonatomic, strong, nullable) NSURLCredential *credential;
|
|
|
|
/**
|
|
* The SDWebImageDownloaderOptions for the receiver.
|
|
*/
|
|
@property (assign, nonatomic, readonly) SDWebImageDownloaderOptions options;
|
|
|
|
/**
|
|
* The expected size of data.
|
|
*/
|
|
@property (assign, nonatomic) NSInteger expectedSize;
|
|
|
|
/**
|
|
* The response returned by the operation's task.
|
|
*/
|
|
@property (strong, nonatomic, nullable) NSURLResponse *response;
|
|
|
|
/**
|
|
* Initializes a `SDWebImageDownloaderOperation` object
|
|
*
|
|
* @see SDWebImageDownloaderOperation
|
|
*
|
|
* @param request the URL request
|
|
* @param session the URL session in which this operation will run
|
|
* @param options downloader options
|
|
*
|
|
* @return the initialized instance
|
|
*/
|
|
- (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request
|
|
inSession:(nullable NSURLSession *)session
|
|
options:(SDWebImageDownloaderOptions)options NS_DESIGNATED_INITIALIZER;
|
|
|
|
/**
|
|
* Adds handlers for progress and completion. Returns a tokent that can be passed to -cancel: to cancel this set of
|
|
* callbacks.
|
|
*
|
|
* @param progressBlock the block executed when a new chunk of data arrives.
|
|
* @note the progress block is executed on a background queue
|
|
* @param completedBlock the block executed when the download is done.
|
|
* @note the completed block is executed on the main queue for success. If errors are found, there is a chance the block will be executed on a background queue
|
|
*
|
|
* @return the token to use to cancel this set of handlers
|
|
*/
|
|
- (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
|
|
completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock;
|
|
|
|
/**
|
|
* Cancels a set of callbacks. Once all callbacks are canceled, the operation is cancelled.
|
|
*
|
|
* @param token the token representing a set of callbacks to cancel
|
|
*
|
|
* @return YES if the operation was stopped because this was the last token to be canceled. NO otherwise.
|
|
*/
|
|
- (BOOL)cancel:(nullable id)token;
|
|
|
|
@end
|