diff options
author | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-06-10 14:55:11 +0300 |
---|---|---|
committer | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-06-13 22:28:16 +0300 |
commit | 5b4bb1398b3bab12d1493660f7ae1d7fadfa5ea0 (patch) | |
tree | cac7d0d43606d123dd467ae4c86ca505bc18212e /platform/default | |
parent | 32e0b7beec8ee1229cc6b1b1a4b857a459547b55 (diff) | |
download | qtlocation-mapboxgl-5b4bb1398b3bab12d1493660f7ae1d7fadfa5ea0.tar.gz |
[core] Surface cache management APIs
These APIs need to be on the DefaultFileSource in order to
be visible for the SDKs bindings.
Diffstat (limited to 'platform/default')
-rw-r--r-- | platform/default/src/mbgl/storage/default_file_source.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/platform/default/src/mbgl/storage/default_file_source.cpp b/platform/default/src/mbgl/storage/default_file_source.cpp index eabb7b45c3..92e86b25d0 100644 --- a/platform/default/src/mbgl/storage/default_file_source.cpp +++ b/platform/default/src/mbgl/storage/default_file_source.cpp @@ -87,6 +87,10 @@ public: callback(offlineDatabase->deleteRegion(std::move(region))); } + void invalidateRegion(int64_t regionID, std::function<void (std::exception_ptr)> callback) { + callback(offlineDatabase->invalidateRegion(regionID)); + } + void setRegionObserver(int64_t regionID, std::unique_ptr<OfflineRegionObserver> observer) { if (auto download = getDownload(regionID)) { download.value()->setObserver(std::move(observer)); @@ -184,6 +188,14 @@ public: callback(offlineDatabase->resetCache()); } + void invalidateTileCache(std::function<void (std::exception_ptr)> callback) { + callback(offlineDatabase->invalidateTileCache()); + } + + void clearTileCache(std::function<void (std::exception_ptr)> callback) { + callback(offlineDatabase->clearTileCache()); + } + private: expected<OfflineDownload*, std::exception_ptr> getDownload(int64_t regionID) { auto it = downloads.find(regionID); @@ -295,6 +307,10 @@ void DefaultFileSource::deleteOfflineRegion(OfflineRegion&& region, std::functio impl->actor().invoke(&Impl::deleteRegion, std::move(region), callback); } +void DefaultFileSource::invalidateOfflineRegion(OfflineRegion& region, std::function<void (std::exception_ptr)> callback) { + impl->actor().invoke(&Impl::invalidateRegion, region.getID(), callback); +} + void DefaultFileSource::setOfflineRegionObserver(OfflineRegion& region, std::unique_ptr<OfflineRegionObserver> observer) { impl->actor().invoke(&Impl::setRegionObserver, region.getID(), std::move(observer)); } @@ -327,6 +343,14 @@ void DefaultFileSource::resetCache(std::function<void (std::exception_ptr)> call impl->actor().invoke(&Impl::resetCache, callback); } +void DefaultFileSource::invalidateTileCache(std::function<void (std::exception_ptr)> callback) { + impl->actor().invoke(&Impl::invalidateTileCache, callback); +} + +void DefaultFileSource::clearTileCache(std::function<void (std::exception_ptr)> callback) { + impl->actor().invoke(&Impl::clearTileCache, callback); +} + // For testing only: void DefaultFileSource::setOnlineStatus(const bool status) { |