diff options
Diffstat (limited to 'platform/default/src/mbgl/storage')
-rw-r--r-- | platform/default/src/mbgl/storage/default_file_source.cpp | 8 | ||||
-rw-r--r-- | platform/default/src/mbgl/storage/offline_database.cpp | 8 |
2 files changed, 16 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 1ccf999109..08fbbff9a0 100644 --- a/platform/default/src/mbgl/storage/default_file_source.cpp +++ b/platform/default/src/mbgl/storage/default_file_source.cpp @@ -177,6 +177,10 @@ public: offlineDatabase->put(resource, response); } + void resetCache(std::function<void (std::exception_ptr)> callback) { + callback(offlineDatabase->resetCache()); + } + private: expected<OfflineDownload*, std::exception_ptr> getDownload(int64_t regionID) { auto it = downloads.find(regionID); @@ -316,6 +320,10 @@ void DefaultFileSource::put(const Resource& resource, const Response& response) impl->actor().invoke(&Impl::put, resource, response); } +void DefaultFileSource::resetCache(std::function<void (std::exception_ptr)> callback) { + impl->actor().invoke(&Impl::resetCache, callback); +} + // For testing only: void DefaultFileSource::setOnlineStatus(const bool status) { diff --git a/platform/default/src/mbgl/storage/offline_database.cpp b/platform/default/src/mbgl/storage/offline_database.cpp index 752f5ac20a..1639c4484c 100644 --- a/platform/default/src/mbgl/storage/offline_database.cpp +++ b/platform/default/src/mbgl/storage/offline_database.cpp @@ -1136,4 +1136,12 @@ bool OfflineDatabase::exceedsOfflineMapboxTileCountLimit(const Resource& resourc && offlineMapboxTileCountLimitExceeded(); } +std::exception_ptr OfflineDatabase::resetCache() try { + removeExisting(); + initialize(); + return nullptr; +} catch (...) { + return std::current_exception(); +} + } // namespace mbgl |