summaryrefslogtreecommitdiff
path: root/platform/default/mbgl/storage/offline_database.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/default/mbgl/storage/offline_database.hpp')
-rw-r--r--platform/default/mbgl/storage/offline_database.hpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/platform/default/mbgl/storage/offline_database.hpp b/platform/default/mbgl/storage/offline_database.hpp
index 38eb3783ba..cdad11b79e 100644
--- a/platform/default/mbgl/storage/offline_database.hpp
+++ b/platform/default/mbgl/storage/offline_database.hpp
@@ -18,6 +18,7 @@ namespace sqlite {
class Database;
class Statement;
class Query;
+class Exception;
} // namespace sqlite
} // namespace mapbox
@@ -26,6 +27,10 @@ namespace mbgl {
class Response;
class TileID;
+namespace util {
+struct IOException;
+} // namespace util
+
struct MapboxTileLimitExceededException : util::Exception {
MapboxTileLimitExceededException() : util::Exception("Mapbox tile limit exceeded") {}
};
@@ -44,10 +49,10 @@ public:
std::vector<OfflineRegion> listRegions();
- OfflineRegion createRegion(const OfflineRegionDefinition&,
- const OfflineRegionMetadata&);
+ optional<OfflineRegion> createRegion(const OfflineRegionDefinition&,
+ const OfflineRegionMetadata&);
- OfflineRegionMetadata updateMetadata(const int64_t regionID, const OfflineRegionMetadata&);
+ optional<OfflineRegionMetadata> updateMetadata(const int64_t regionID, const OfflineRegionMetadata&);
void deleteRegion(OfflineRegion&&);
@@ -57,8 +62,8 @@ public:
uint64_t putRegionResource(int64_t regionID, const Resource&, const Response&);
void putRegionResources(int64_t regionID, const std::list<std::tuple<Resource, Response>>&, OfflineRegionStatus&);
- OfflineRegionDefinition getRegionDefinition(int64_t regionID);
- OfflineRegionStatus getRegionCompletedStatus(int64_t regionID);
+ optional<OfflineRegionDefinition> getRegionDefinition(int64_t regionID);
+ optional<OfflineRegionStatus> getRegionCompletedStatus(int64_t regionID);
void setOfflineMapboxTileCountLimit(uint64_t);
uint64_t getOfflineMapboxTileCountLimit();
@@ -67,12 +72,15 @@ public:
bool exceedsOfflineMapboxTileCountLimit(const Resource&);
private:
- int userVersion();
- void ensureSchema();
+ void initialize();
+ void handleError(const mapbox::sqlite::Exception&, const char* action);
+ void handleError(const util::IOException&, const char* action);
+
void removeExisting();
void removeOldCacheTable();
- void migrateToVersion3();
+ void createSchema();
void migrateToVersion5();
+ void migrateToVersion3();
void migrateToVersion6();
mapbox::sqlite::Statement& getStatement(const char *);