From 83b9d5c682b21d88133f24da0f94dd56bd79e687 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 19 Jul 2018 13:38:55 +0800
Subject: [PATCH] change
---
screendisplay/Pods/SDWebImage/SDWebImage/SDImageCache.h | 299 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 299 insertions(+), 0 deletions(-)
diff --git a/screendisplay/Pods/SDWebImage/SDWebImage/SDImageCache.h b/screendisplay/Pods/SDWebImage/SDWebImage/SDImageCache.h
new file mode 100644
index 0000000..9b07f47
--- /dev/null
+++ b/screendisplay/Pods/SDWebImage/SDWebImage/SDImageCache.h
@@ -0,0 +1,299 @@
+/*
+ * 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"
+#import "SDImageCacheConfig.h"
+
+typedef NS_ENUM(NSInteger, SDImageCacheType) {
+ /**
+ * The image wasn't available the SDWebImage caches, but was downloaded from the web.
+ */
+ SDImageCacheTypeNone,
+ /**
+ * The image was obtained from the disk cache.
+ */
+ SDImageCacheTypeDisk,
+ /**
+ * The image was obtained from the memory cache.
+ */
+ SDImageCacheTypeMemory
+};
+
+typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
+ /**
+ * By default, we do not query disk data when the image is cached in memory. This mask can force to query disk data at the same time.
+ */
+ SDImageCacheQueryDataWhenInMemory = 1 << 0,
+ /**
+ * By default, we query the memory cache synchronously, disk cache asynchronously. This mask can force to query disk cache synchronously.
+ */
+ SDImageCacheQueryDiskSync = 1 << 1,
+ /**
+ * By default, images are decoded respecting their original size. On iOS, this flag will scale down the
+ * images to a size compatible with the constrained memory of devices.
+ */
+ SDImageCacheScaleDownLargeImages = 1 << 2
+};
+
+typedef void(^SDCacheQueryCompletedBlock)(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType);
+
+typedef void(^SDWebImageCheckCacheCompletionBlock)(BOOL isInCache);
+
+typedef void(^SDWebImageCalculateSizeBlock)(NSUInteger fileCount, NSUInteger totalSize);
+
+
+/**
+ * SDImageCache maintains a memory cache and an optional disk cache. Disk cache write operations are performed
+ * asynchronous so it doesn���t add unnecessary latency to the UI.
+ */
+@interface SDImageCache : NSObject
+
+#pragma mark - Properties
+
+/**
+ * Cache Config object - storing all kind of settings
+ */
+@property (nonatomic, nonnull, readonly) SDImageCacheConfig *config;
+
+/**
+ * The maximum "total cost" of the in-memory image cache. The cost function is the number of pixels held in memory.
+ */
+@property (assign, nonatomic) NSUInteger maxMemoryCost;
+
+/**
+ * The maximum number of objects the cache should hold.
+ */
+@property (assign, nonatomic) NSUInteger maxMemoryCountLimit;
+
+#pragma mark - Singleton and initialization
+
+/**
+ * Returns global shared cache instance
+ *
+ * @return SDImageCache global instance
+ */
++ (nonnull instancetype)sharedImageCache;
+
+/**
+ * Init a new cache store with a specific namespace
+ *
+ * @param ns The namespace to use for this cache store
+ */
+- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns;
+
+/**
+ * Init a new cache store with a specific namespace and directory
+ *
+ * @param ns The namespace to use for this cache store
+ * @param directory Directory to cache disk images in
+ */
+- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns
+ diskCacheDirectory:(nonnull NSString *)directory NS_DESIGNATED_INITIALIZER;
+
+#pragma mark - Cache paths
+
+- (nullable NSString *)makeDiskCachePath:(nonnull NSString*)fullNamespace;
+
+/**
+ * Add a read-only cache path to search for images pre-cached by SDImageCache
+ * Useful if you want to bundle pre-loaded images with your app
+ *
+ * @param path The path to use for this read-only cache path
+ */
+- (void)addReadOnlyCachePath:(nonnull NSString *)path;
+
+#pragma mark - Store Ops
+
+/**
+ * Asynchronously store an image into memory and disk cache at the given key.
+ *
+ * @param image The image to store
+ * @param key The unique image cache key, usually it's image absolute URL
+ * @param completionBlock A block executed after the operation is finished
+ */
+- (void)storeImage:(nullable UIImage *)image
+ forKey:(nullable NSString *)key
+ completion:(nullable SDWebImageNoParamsBlock)completionBlock;
+
+/**
+ * Asynchronously store an image into memory and disk cache at the given key.
+ *
+ * @param image The image to store
+ * @param key The unique image cache key, usually it's image absolute URL
+ * @param toDisk Store the image to disk cache if YES
+ * @param completionBlock A block executed after the operation is finished
+ */
+- (void)storeImage:(nullable UIImage *)image
+ forKey:(nullable NSString *)key
+ toDisk:(BOOL)toDisk
+ completion:(nullable SDWebImageNoParamsBlock)completionBlock;
+
+/**
+ * Asynchronously store an image into memory and disk cache at the given key.
+ *
+ * @param image The image to store
+ * @param imageData The image data as returned by the server, this representation will be used for disk storage
+ * instead of converting the given image object into a storable/compressed image format in order
+ * to save quality and CPU
+ * @param key The unique image cache key, usually it's image absolute URL
+ * @param toDisk Store the image to disk cache if YES
+ * @param completionBlock A block executed after the operation is finished
+ */
+- (void)storeImage:(nullable UIImage *)image
+ imageData:(nullable NSData *)imageData
+ forKey:(nullable NSString *)key
+ toDisk:(BOOL)toDisk
+ completion:(nullable SDWebImageNoParamsBlock)completionBlock;
+
+/**
+ * Synchronously store image NSData into disk cache at the given key.
+ *
+ *
+ * @param imageData The image data to store
+ * @param key The unique image cache key, usually it's image absolute URL
+ */
+- (void)storeImageDataToDisk:(nullable NSData *)imageData forKey:(nullable NSString *)key;
+
+#pragma mark - Query and Retrieve Ops
+
+/**
+ * Async check if image exists in disk cache already (does not load the image)
+ *
+ * @param key the key describing the url
+ * @param completionBlock the block to be executed when the check is done.
+ * @note the completion block will be always executed on the main queue
+ */
+- (void)diskImageExistsWithKey:(nullable NSString *)key completion:(nullable SDWebImageCheckCacheCompletionBlock)completionBlock;
+
+/**
+ * Sync check if image data exists in disk cache already (does not load the image)
+ *
+ * @param key the key describing the url
+ */
+- (BOOL)diskImageDataExistsWithKey:(nullable NSString *)key;
+
+/**
+ * Operation that queries the cache asynchronously and call the completion when done.
+ *
+ * @param key The unique key used to store the wanted image
+ * @param doneBlock The completion block. Will not get called if the operation is cancelled
+ *
+ * @return a NSOperation instance containing the cache op
+ */
+- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key done:(nullable SDCacheQueryCompletedBlock)doneBlock;
+
+/**
+ * Operation that queries the cache asynchronously and call the completion when done.
+ *
+ * @param key The unique key used to store the wanted image
+ * @param options A mask to specify options to use for this cache query
+ * @param doneBlock The completion block. Will not get called if the operation is cancelled
+ *
+ * @return a NSOperation instance containing the cache op
+ */
+- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options done:(nullable SDCacheQueryCompletedBlock)doneBlock;
+
+/**
+ * Query the memory cache synchronously.
+ *
+ * @param key The unique key used to store the image
+ */
+- (nullable UIImage *)imageFromMemoryCacheForKey:(nullable NSString *)key;
+
+/**
+ * Query the disk cache synchronously.
+ *
+ * @param key The unique key used to store the image
+ */
+- (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key;
+
+/**
+ * Query the cache (memory and or disk) synchronously after checking the memory cache.
+ *
+ * @param key The unique key used to store the image
+ */
+- (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key;
+
+#pragma mark - Remove Ops
+
+/**
+ * Remove the image from memory and disk cache asynchronously
+ *
+ * @param key The unique image cache key
+ * @param completion A block that should be executed after the image has been removed (optional)
+ */
+- (void)removeImageForKey:(nullable NSString *)key withCompletion:(nullable SDWebImageNoParamsBlock)completion;
+
+/**
+ * Remove the image from memory and optionally disk cache asynchronously
+ *
+ * @param key The unique image cache key
+ * @param fromDisk Also remove cache entry from disk if YES
+ * @param completion A block that should be executed after the image has been removed (optional)
+ */
+- (void)removeImageForKey:(nullable NSString *)key fromDisk:(BOOL)fromDisk withCompletion:(nullable SDWebImageNoParamsBlock)completion;
+
+#pragma mark - Cache clean Ops
+
+/**
+ * Clear all memory cached images
+ */
+- (void)clearMemory;
+
+/**
+ * Async clear all disk cached images. Non-blocking method - returns immediately.
+ * @param completion A block that should be executed after cache expiration completes (optional)
+ */
+- (void)clearDiskOnCompletion:(nullable SDWebImageNoParamsBlock)completion;
+
+/**
+ * Async remove all expired cached image from disk. Non-blocking method - returns immediately.
+ * @param completionBlock A block that should be executed after cache expiration completes (optional)
+ */
+- (void)deleteOldFilesWithCompletionBlock:(nullable SDWebImageNoParamsBlock)completionBlock;
+
+#pragma mark - Cache Info
+
+/**
+ * Get the size used by the disk cache
+ */
+- (NSUInteger)getSize;
+
+/**
+ * Get the number of images in the disk cache
+ */
+- (NSUInteger)getDiskCount;
+
+/**
+ * Asynchronously calculate the disk cache's size.
+ */
+- (void)calculateSizeWithCompletionBlock:(nullable SDWebImageCalculateSizeBlock)completionBlock;
+
+#pragma mark - Cache Paths
+
+/**
+ * Get the cache path for a certain key (needs the cache path root folder)
+ *
+ * @param key the key (can be obtained from url using cacheKeyForURL)
+ * @param path the cache path root folder
+ *
+ * @return the cache path
+ */
+- (nullable NSString *)cachePathForKey:(nullable NSString *)key inPath:(nonnull NSString *)path;
+
+/**
+ * Get the default cache path for a certain key
+ *
+ * @param key the key (can be obtained from url using cacheKeyForURL)
+ *
+ * @return the default cache path
+ */
+- (nullable NSString *)defaultCachePathForKey:(nullable NSString *)key;
+
+@end
--
Gitblit v1.8.0