123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /*
- * 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 "SDImageCacheDefine.h"
- /// Policy for cache operation
- typedef NS_ENUM(NSUInteger, SDImageCachesManagerOperationPolicy) {
- SDImageCachesManagerOperationPolicySerial, // process all caches serially (from the highest priority to the lowest priority cache by order)
- SDImageCachesManagerOperationPolicyConcurrent, // process all caches concurrently
- SDImageCachesManagerOperationPolicyHighestOnly, // process the highest priority cache only
- SDImageCachesManagerOperationPolicyLowestOnly // process the lowest priority cache only
- };
- /**
- A caches manager to manage multiple caches.
- */
- @interface SDImageCachesManager : NSObject <SDImageCache>
- /**
- Returns the global shared caches manager instance. By default we will set [`SDImageCache.sharedImageCache`] into the caches array.
- */
- @property (nonatomic, class, readonly, nonnull) SDImageCachesManager *sharedManager;
- // These are op policy for cache manager.
- /**
- Operation policy for query op.
- Defaults to `Serial`, means query all caches serially (one completion called then next begin) until one cache query success (`image` != nil).
- */
- @property (nonatomic, assign) SDImageCachesManagerOperationPolicy queryOperationPolicy;
- /**
- Operation policy for store op.
- Defaults to `HighestOnly`, means store to the highest priority cache only.
- */
- @property (nonatomic, assign) SDImageCachesManagerOperationPolicy storeOperationPolicy;
- /**
- Operation policy for remove op.
- Defaults to `Concurrent`, means remove all caches concurrently.
- */
- @property (nonatomic, assign) SDImageCachesManagerOperationPolicy removeOperationPolicy;
- /**
- Operation policy for contains op.
- Defaults to `Serial`, means check all caches serially (one completion called then next begin) until one cache check success (`containsCacheType` != None).
- */
- @property (nonatomic, assign) SDImageCachesManagerOperationPolicy containsOperationPolicy;
- /**
- Operation policy for clear op.
- Defaults to `Concurrent`, means clear all caches concurrently.
- */
- @property (nonatomic, assign) SDImageCachesManagerOperationPolicy clearOperationPolicy;
- /**
- All caches in caches manager. The caches array is a priority queue, which means the later added cache will have the highest priority
- */
- @property (nonatomic, copy, nullable) NSArray<id<SDImageCache>> *caches;
- /**
- Add a new cache to the end of caches array. Which has the highest priority.
-
- @param cache cache
- */
- - (void)addCache:(nonnull id<SDImageCache>)cache;
- /**
- Remove a cache in the caches array.
-
- @param cache cache
- */
- - (void)removeCache:(nonnull id<SDImageCache>)cache;
- @end
|