summaryrefslogtreecommitdiff
path: root/platform/default/src/mbgl/storage/database_file_source.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/default/src/mbgl/storage/database_file_source.cpp')
-rw-r--r--platform/default/src/mbgl/storage/database_file_source.cpp53
1 files changed, 28 insertions, 25 deletions
diff --git a/platform/default/src/mbgl/storage/database_file_source.cpp b/platform/default/src/mbgl/storage/database_file_source.cpp
index 276482faa0..4dff99b5b8 100644
--- a/platform/default/src/mbgl/storage/database_file_source.cpp
+++ b/platform/default/src/mbgl/storage/database_file_source.cpp
@@ -12,14 +12,15 @@
#include <mbgl/util/thread.hpp>
#include <map>
+#include <utility>
namespace mbgl {
class DatabaseFileSourceThread {
public:
- DatabaseFileSourceThread(std::shared_ptr<FileSource> onlineFileSource_, std::string cachePath)
- : db(std::make_unique<OfflineDatabase>(cachePath)), onlineFileSource(onlineFileSource_) {}
+ DatabaseFileSourceThread(std::shared_ptr<FileSource> onlineFileSource_, const std::string& cachePath)
+ : db(std::make_unique<OfflineDatabase>(cachePath)), onlineFileSource(std::move(onlineFileSource_)) {}
- void request(const Resource& resource, ActorRef<FileSourceRequest> req) {
+ void request(const Resource& resource, const ActorRef<FileSourceRequest>& req) {
auto offlineResponse = db->get(resource);
if (!offlineResponse) {
offlineResponse.emplace();
@@ -33,61 +34,63 @@ public:
req.invoke(&FileSourceRequest::setResponse, *offlineResponse);
}
- void setDatabasePath(const std::string& path, std::function<void()> callback) {
+ void setDatabasePath(const std::string& path, const std::function<void()>& callback) {
db->changePath(path);
if (callback) {
callback();
}
}
- void forward(const Resource& resource, const Response& response, std::function<void()> callback) {
+ void forward(const Resource& resource, const Response& response, const std::function<void()>& callback) {
db->put(resource, response);
if (callback) {
callback();
}
}
- void resetDatabase(std::function<void(std::exception_ptr)> callback) { callback(db->resetDatabase()); }
+ void resetDatabase(const std::function<void(std::exception_ptr)>& callback) { callback(db->resetDatabase()); }
- void packDatabase(std::function<void(std::exception_ptr)> callback) { callback(db->pack()); }
+ void packDatabase(const std::function<void(std::exception_ptr)>& callback) { callback(db->pack()); }
void runPackDatabaseAutomatically(bool autopack) { db->runPackDatabaseAutomatically(autopack); }
void put(const Resource& resource, const Response& response) { db->put(resource, response); }
- void invalidateAmbientCache(std::function<void(std::exception_ptr)> callback) {
+ void invalidateAmbientCache(const std::function<void(std::exception_ptr)>& callback) {
callback(db->invalidateAmbientCache());
}
- void clearAmbientCache(std::function<void(std::exception_ptr)> callback) { callback(db->clearAmbientCache()); }
+ void clearAmbientCache(const std::function<void(std::exception_ptr)>& callback) {
+ callback(db->clearAmbientCache());
+ }
- void setMaximumAmbientCacheSize(uint64_t size, std::function<void(std::exception_ptr)> callback) {
+ void setMaximumAmbientCacheSize(uint64_t size, const std::function<void(std::exception_ptr)>& callback) {
callback(db->setMaximumAmbientCacheSize(size));
}
- void listRegions(std::function<void(expected<OfflineRegions, std::exception_ptr>)> callback) {
+ void listRegions(const std::function<void(expected<OfflineRegions, std::exception_ptr>)>& callback) {
callback(db->listRegions());
}
void createRegion(const OfflineRegionDefinition& definition,
const OfflineRegionMetadata& metadata,
- std::function<void(expected<OfflineRegion, std::exception_ptr>)> callback) {
+ const std::function<void(expected<OfflineRegion, std::exception_ptr>)>& callback) {
callback(db->createRegion(definition, metadata));
}
void mergeOfflineRegions(const std::string& sideDatabasePath,
- std::function<void(expected<OfflineRegions, std::exception_ptr>)> callback) {
+ const std::function<void(expected<OfflineRegions, std::exception_ptr>)>& callback) {
callback(db->mergeDatabase(sideDatabasePath));
}
void updateMetadata(const int64_t regionID,
const OfflineRegionMetadata& metadata,
- std::function<void(expected<OfflineRegionMetadata, std::exception_ptr>)> callback) {
+ const std::function<void(expected<OfflineRegionMetadata, std::exception_ptr>)>& callback) {
callback(db->updateMetadata(regionID, metadata));
}
void getRegionStatus(int64_t regionID,
- std::function<void(expected<OfflineRegionStatus, std::exception_ptr>)> callback) {
+ const std::function<void(expected<OfflineRegionStatus, std::exception_ptr>)>& callback) {
if (auto download = getDownload(regionID)) {
callback(download.value()->getStatus());
} else {
@@ -95,12 +98,12 @@ public:
}
}
- void deleteRegion(OfflineRegion region, std::function<void(std::exception_ptr)> callback) {
+ void deleteRegion(OfflineRegion region, const std::function<void(std::exception_ptr)>& callback) {
downloads.erase(region.getID());
callback(db->deleteRegion(std::move(region)));
}
- void invalidateRegion(int64_t regionID, std::function<void(std::exception_ptr)> callback) {
+ void invalidateRegion(int64_t regionID, const std::function<void(std::exception_ptr)>& callback) {
callback(db->invalidateRegion(regionID));
}
@@ -223,35 +226,35 @@ void DatabaseFileSource::setMaximumAmbientCacheSize(uint64_t size, std::function
void DatabaseFileSource::listOfflineRegions(
std::function<void(expected<OfflineRegions, std::exception_ptr>)> callback) {
- impl->actor().invoke(&DatabaseFileSourceThread::listRegions, callback);
+ impl->actor().invoke(&DatabaseFileSourceThread::listRegions, std::move(callback));
}
void DatabaseFileSource::createOfflineRegion(
const OfflineRegionDefinition& definition,
const OfflineRegionMetadata& metadata,
std::function<void(expected<OfflineRegion, std::exception_ptr>)> callback) {
- impl->actor().invoke(&DatabaseFileSourceThread::createRegion, definition, metadata, callback);
+ impl->actor().invoke(&DatabaseFileSourceThread::createRegion, definition, metadata, std::move(callback));
}
void DatabaseFileSource::mergeOfflineRegions(
const std::string& sideDatabasePath, std::function<void(expected<OfflineRegions, std::exception_ptr>)> callback) {
- impl->actor().invoke(&DatabaseFileSourceThread::mergeOfflineRegions, sideDatabasePath, callback);
+ impl->actor().invoke(&DatabaseFileSourceThread::mergeOfflineRegions, sideDatabasePath, std::move(callback));
}
void DatabaseFileSource::updateOfflineMetadata(
const int64_t regionID,
const OfflineRegionMetadata& metadata,
std::function<void(expected<OfflineRegionMetadata, std::exception_ptr>)> callback) {
- impl->actor().invoke(&DatabaseFileSourceThread::updateMetadata, regionID, metadata, callback);
+ impl->actor().invoke(&DatabaseFileSourceThread::updateMetadata, regionID, metadata, std::move(callback));
}
-void DatabaseFileSource::deleteOfflineRegion(OfflineRegion region, std::function<void(std::exception_ptr)> callback) {
- impl->actor().invoke(&DatabaseFileSourceThread::deleteRegion, std::move(region), callback);
+void DatabaseFileSource::deleteOfflineRegion(OfflineRegion& region, std::function<void(std::exception_ptr)> callback) {
+ impl->actor().invoke(&DatabaseFileSourceThread::deleteRegion, region, std::move(callback));
}
void DatabaseFileSource::invalidateOfflineRegion(OfflineRegion& region,
std::function<void(std::exception_ptr)> callback) {
- impl->actor().invoke(&DatabaseFileSourceThread::invalidateRegion, region.getID(), callback);
+ impl->actor().invoke(&DatabaseFileSourceThread::invalidateRegion, region.getID(), std::move(callback));
}
void DatabaseFileSource::setOfflineRegionObserver(OfflineRegion& region,
@@ -265,7 +268,7 @@ void DatabaseFileSource::setOfflineRegionDownloadState(OfflineRegion& region, Of
void DatabaseFileSource::getOfflineRegionStatus(
OfflineRegion& region, std::function<void(expected<OfflineRegionStatus, std::exception_ptr>)> callback) const {
- impl->actor().invoke(&DatabaseFileSourceThread::getRegionStatus, region.getID(), callback);
+ impl->actor().invoke(&DatabaseFileSourceThread::getRegionStatus, region.getID(), std::move(callback));
}
void DatabaseFileSource::setOfflineMapboxTileCountLimit(uint64_t limit) const {