123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /*
- * 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
- */
- @protocol SDWebImageDownloaderOperationInterface<NSObject>
- - (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;
- @end
- @interface SDWebImageDownloaderOperation : NSOperation <SDWebImageDownloaderOperationInterface, SDWebImageOperation, NSURLSessionTaskDelegate, NSURLSessionDataDelegate>
- /**
- * 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 `-connection:didReceiveAuthenticationChallenge:`.
- *
- * 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 connection.
- */
- @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
|