Swiftgram/AsyncDisplayKit/Details/ASPINRemoteImageDownloader.h
rmalik 7769883dc8 Add method to specify the default NSURLSessionConfiguration for
ASPINRemoteImageDownloader. This will allow callers to supply their own custom
logic whether that is background downloads, custom http headers, cookie
storage, etc.
2016-11-14 16:19:48 -08:00

59 lines
2.0 KiB
Objective-C

//
// ASPINRemoteImageDownloader.h
// AsyncDisplayKit
//
// Created by Garrett Moon on 2/5/16.
//
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
//
#if PIN_REMOTE_IMAGE
#import <Foundation/Foundation.h>
#import "ASImageProtocols.h"
#import <PINRemoteImage/PINRemoteImageManager.h>
NS_ASSUME_NONNULL_BEGIN
@interface ASPINRemoteImageDownloader : NSObject <ASImageCacheProtocol, ASImageDownloaderProtocol>
/**
* A shared image downloader which can be used by @c ASNetworkImageNodes and @c ASMultiplexImageNodes
*
* This is the default downloader used by network backed image nodes if PINRemoteImage and PINCache are
* available. It uses PINRemoteImage's features to provide caching and progressive image downloads.
*/
+ (ASPINRemoteImageDownloader *)sharedDownloader;
/**
* Sets the default NSURLSessionConfiguration that will be used by @c ASNetworkImageNodes and @c ASMultiplexImageNodes
* while loading images off the network. This must be specified early in the application lifecycle before
* `sharedDownloader` is accessed.
*
* @param configuration The session configuration that will be used by `sharedDownloader`
*
*/
+ (void)setSharedImageManagerWithConfiguration:(nullable NSURLSessionConfiguration *)configuration;
/**
* The shared instance of a @c PINRemoteImageManager used by all @c ASPINRemoteImageDownloaders
*
* @discussion you can use this method to access the shared manager. This is useful to share a cache
* and resources if you need to download images outside of an @c ASNetworkImageNode or
* @c ASMultiplexImageNode. It's also useful to access the memoryCache and diskCache to set limits
* or handle authentication challenges.
*
* @return An instance of a @c PINRemoteImageManager
*/
- (PINRemoteImageManager *)sharedPINRemoteImageManager;
@end
NS_ASSUME_NONNULL_END
#endif