diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2018-02-22 13:38:26 +0200 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2018-06-04 12:09:32 +0300 |
commit | d928908ec849097440fd028454c538f1c1632a1e (patch) | |
tree | 9b436f4cdaf247d017fa7925d0421f1c36dceed9 /platform/default/mbgl/storage/offline_database.hpp | |
parent | 4146d8d9be3a732a626b0e537ed1490af9bc0427 (diff) | |
download | qtlocation-mapboxgl-d928908ec849097440fd028454c538f1c1632a1e.tar.gz |
[core] offline database - batch region resource inserts
Diffstat (limited to 'platform/default/mbgl/storage/offline_database.hpp')
-rw-r--r-- | platform/default/mbgl/storage/offline_database.hpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/platform/default/mbgl/storage/offline_database.hpp b/platform/default/mbgl/storage/offline_database.hpp index e0d90a9a15..639bd42e2d 100644 --- a/platform/default/mbgl/storage/offline_database.hpp +++ b/platform/default/mbgl/storage/offline_database.hpp @@ -2,6 +2,7 @@ #include <mbgl/storage/resource.hpp> #include <mbgl/storage/offline.hpp> +#include <mbgl/util/exception.hpp> #include <mbgl/util/noncopyable.hpp> #include <mbgl/util/optional.hpp> #include <mbgl/util/constants.hpp> @@ -10,6 +11,7 @@ #include <unordered_map> #include <memory> #include <string> +#include <list> namespace mapbox { namespace sqlite { @@ -24,6 +26,10 @@ namespace mbgl { class Response; class TileID; +struct MapboxTileLimitExceededException : util::Exception { + MapboxTileLimitExceededException() : util::Exception("Mapbox tile limit exceeded") {} +}; + class OfflineDatabase : private util::noncopyable { public: // Limits affect ambient caching (put) only; resources required by offline @@ -49,6 +55,7 @@ public: optional<std::pair<Response, uint64_t>> getRegionResource(int64_t regionID, const Resource&); optional<int64_t> hasRegionResource(int64_t regionID, const Resource&); 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); @@ -57,6 +64,7 @@ public: uint64_t getOfflineMapboxTileCountLimit(); bool offlineMapboxTileCountLimitExceeded(); uint64_t getOfflineMapboxTileCount(); + bool exceedsOfflineMapboxTileCountLimit(const Resource&); private: int userVersion(); @@ -78,6 +86,8 @@ private: bool putResource(const Resource&, const Response&, const std::string&, bool compressed); + uint64_t putRegionResourceInternal(int64_t regionID, const Resource&, const Response&); + optional<std::pair<Response, uint64_t>> getInternal(const Resource&); optional<int64_t> hasInternal(const Resource&); std::pair<bool, uint64_t> putInternal(const Resource&, const Response&, bool evict); |