diff options
Diffstat (limited to 'platform/darwin/src/MGLOfflineStorage.h')
-rw-r--r-- | platform/darwin/src/MGLOfflineStorage.h | 87 |
1 files changed, 84 insertions, 3 deletions
diff --git a/platform/darwin/src/MGLOfflineStorage.h b/platform/darwin/src/MGLOfflineStorage.h index b48f2ebf2c..c6a51df80c 100644 --- a/platform/darwin/src/MGLOfflineStorage.h +++ b/platform/darwin/src/MGLOfflineStorage.h @@ -171,9 +171,9 @@ typedef NS_ENUM(NSUInteger, MGLResourceKind) { /** MGLOfflineStorage implements a singleton (shared object) that manages offline - packs. All of this class’s instance methods are asynchronous, reflecting the - fact that offline resources are stored in a database. The shared object - maintains a canonical collection of offline packs in its `packs` property. + packs and ambient caching. All of this class’s instance methods are asynchronous, + reflecting the fact that offline resources are stored in a database. The shared + object maintains a canonical collection of offline packs in its `packs` property. #### Related examples See the <a href="https://docs.mapbox.com/ios/maps/examples/offline-pack/"> @@ -304,6 +304,21 @@ MGL_EXPORT - (void)removePack:(MGLOfflinePack *)pack withCompletionHandler:(nullable MGLOfflinePackRemovalCompletionHandler)completion; /** + Invalidates the specified offline pack. This method checks that the tiles + in the specified offline pack match those from the server. Local tiles that + do not match the latest version on the server are updated. + + This is more efficient than deleting the offline pack and downloading it + again. If the data stored locally matches that on the server, new data will + not be downloaded. + + @param pack The offline pack to be invalidated. + @param completion The completion handler to call once the pack has been + removed. This handler is executed asynchronously on the main queue. + */ + +- (void)invalidatePack:(MGLOfflinePack *)pack withCompletionHandler:(void (^)(NSError * _Nullable))completion; +/** Forcibly, asynchronously reloads the `packs` property. At some point after this method is called, the pointer values of the `MGLOfflinePack` objects in the `packs` property change, even if the underlying data for these packs has not @@ -341,6 +356,72 @@ MGL_EXPORT */ @property (nonatomic, readonly) unsigned long long countOfBytesCompleted; + +#pragma mark - Managing Ambient Cache + +/** + Sets the maximum ambient cache size in megabytes. The default maximum cache + size is 50 MB. To disable ambient caching, set the maximum ambient cache size + to `0`. Setting the maximum ambient cache size does not impact the maximum size + of offline packs. + + While this method does not limit the space available to offline packs, + data in offline packs count towards this limit. If the maximum ambient + cache size is set to 30 MB and 20 MB of offline packs are downloaded, + there may be only 10 MB reserved for the ambient cache. + + This method should be called before the map and map style have been loaded. + + This method is potentially expensive, as the database will trim cached data + in order to prevent the ambient cache from being larger than the + specified amount. + + @param cacheSize The maximum size in bytes for the ambient cache. + @param completion The completion handler to call once the maximum ambient cache size + has been set. This handler is executed synchronously on the main queue. + */ + +- (void)setMaximumAmbientCacheSize:(NSUInteger)cacheSize withCompletionHandler:(void (^)(NSError *_Nullable error))completion; + +/** + Invalidates the ambient cache. This method checks that the tiles in the + ambient cache match those from the server. If the local tiles do not match + those on the server, they are re-downloaded. + + This is recommended over clearing the cache or resetting the database + because valid local tiles will not be downloaded again. + + Resources shared with offline packs will not be affected by this method. + + @param completion The completion handler to call once the ambient cache has + been revalidated. This handler is executed asynchronously on the main queue. + */ + +- (void)invalidateAmbientCacheWithCompletionHandler:(void (^)(NSError *_Nullable error))completion; + +/** + Clears the ambient cache by deleting resources. This method does not + affect resources shared with offline regions. + + @param completion The completion handler to call once resources from + the ambient cache have been cleared. This handler is executed + asynchronously on the main queue. + */ + +- (void)clearAmbientCacheWithCompletionHandler:(void (^)(NSError *_Nullable error))completion; + +/** + Deletes the existing database, which includes both the ambient cache and offline packs, + then reinitializes it. + + You typically do not need to call this method. + + @param completion The completion handler to call once the pack has database has + been reset. This handler is executed asynchronously on the main queue. + */ + +- (void)resetDatabaseWithCompletionHandler:(void (^)(NSError *_Nullable error))completion; + /* Inserts the provided resource into the ambient cache. |