diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-14 10:56:51 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-14 11:25:45 -0700 |
commit | 9d3c4fbbb05d37802ebc15210b041392b4d48f15 (patch) | |
tree | 2f4638ebcff4cc50a08c73ed6587a53c7014bcf0 | |
parent | 9dfcb95e4fe333922306eadd4df5cbde2f03a6c1 (diff) | |
download | qtlocation-mapboxgl-9d3c4fbbb05d37802ebc15210b041392b4d48f15.tar.gz |
[core] Push Source::url down to subclasses
-rw-r--r-- | platform/default/mbgl/storage/offline_download.cpp | 21 | ||||
-rw-r--r-- | src/mbgl/annotation/annotation_source.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/source.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/style/source.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/style/sources/geojson_source.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/style/sources/geojson_source.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/style/tile_source.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/style/tile_source.hpp | 2 | ||||
-rw-r--r-- | test/style/source.cpp | 4 |
9 files changed, 27 insertions, 23 deletions
diff --git a/platform/default/mbgl/storage/offline_download.cpp b/platform/default/mbgl/storage/offline_download.cpp index 932b8f3777..04aabeb04f 100644 --- a/platform/default/mbgl/storage/offline_download.cpp +++ b/platform/default/mbgl/storage/offline_download.cpp @@ -5,6 +5,7 @@ #include <mbgl/storage/response.hpp> #include <mbgl/style/parser.hpp> #include <mbgl/style/tile_source.hpp> +#include <mbgl/style/sources/geojson_source.hpp> #include <mbgl/text/glyph.hpp> #include <mbgl/util/tile_cover.hpp> #include <mbgl/util/mapbox.hpp> @@ -110,10 +111,10 @@ OfflineRegionStatus OfflineDownload::getStatus() const { result.requiredResourceCount += tileResources(source->type, source->tileSize, *tileSource->getTileset()).size(); } else { result.requiredResourceCount += 1; - optional<Response> sourceResponse = offlineDatabase.get(Resource::source(source->url)); + optional<Response> sourceResponse = offlineDatabase.get(Resource::source(tileSource->getURL())); if (sourceResponse) { result.requiredResourceCount += tileResources(source->type, source->tileSize, - *style::parseTileJSON(*sourceResponse->data, source->url, source->type, source->tileSize)).size(); + *style::parseTileJSON(*sourceResponse->data, tileSource->getURL(), source->type, source->tileSize)).size(); } else { result.requiredResourceCountIsPrecise = false; } @@ -121,11 +122,13 @@ OfflineRegionStatus OfflineDownload::getStatus() const { break; } - case SourceType::GeoJSON: - if (!source->url.empty()) { + case SourceType::GeoJSON: { + style::GeoJSONSource* geojsonSource = static_cast<style::GeoJSONSource*>(source.get()); + if (!geojsonSource->getURL().empty()) { result.requiredResourceCount += 1; } break; + } case SourceType::Video: case SourceType::Annotations: @@ -154,7 +157,6 @@ void OfflineDownload::activateDownload() { for (const auto& source : parser.sources) { SourceType type = source->type; uint16_t tileSize = source->tileSize; - std::string url = source->url; switch (type) { case SourceType::Vector: @@ -163,6 +165,7 @@ void OfflineDownload::activateDownload() { if (tileSource->getTileset()) { ensureTiles(type, tileSize, *tileSource->getTileset()); } else { + std::string url = tileSource->getURL(); status.requiredResourceCountIsPrecise = false; requiredSourceURLs.insert(url); @@ -178,11 +181,13 @@ void OfflineDownload::activateDownload() { break; } - case SourceType::GeoJSON: - if (!source->url.empty()) { - ensureResource(Resource::source(source->url)); + case SourceType::GeoJSON: { + style::GeoJSONSource* geojsonSource = static_cast<style::GeoJSONSource*>(source.get()); + if (!geojsonSource->getURL().empty()) { + ensureResource(Resource::source(geojsonSource->getURL())); } break; + } case SourceType::Video: case SourceType::Annotations: diff --git a/src/mbgl/annotation/annotation_source.cpp b/src/mbgl/annotation/annotation_source.cpp index 55e6fc82a3..637109ff8d 100644 --- a/src/mbgl/annotation/annotation_source.cpp +++ b/src/mbgl/annotation/annotation_source.cpp @@ -5,7 +5,7 @@ namespace mbgl { AnnotationSource::AnnotationSource() - : Source(SourceType::Annotations, AnnotationManager::SourceID, "", util::tileSize) { + : Source(SourceType::Annotations, AnnotationManager::SourceID, util::tileSize) { } Range<uint8_t> AnnotationSource::getZoomRange() { diff --git a/src/mbgl/style/source.cpp b/src/mbgl/style/source.cpp index 3c5690e980..21fb7fee36 100644 --- a/src/mbgl/style/source.cpp +++ b/src/mbgl/style/source.cpp @@ -32,13 +32,9 @@ namespace style { static SourceObserver nullObserver; -Source::Source(SourceType type_, - std::string id_, - std::string url_, - uint16_t tileSize_) +Source::Source(SourceType type_, std::string id_, uint16_t tileSize_) : type(type_), id(std::move(id_)), - url(std::move(url_)), tileSize(tileSize_), observer(&nullObserver) { } diff --git a/src/mbgl/style/source.hpp b/src/mbgl/style/source.hpp index 36e6570fb5..99d634a887 100644 --- a/src/mbgl/style/source.hpp +++ b/src/mbgl/style/source.hpp @@ -32,10 +32,7 @@ class SourceObserver; class Source : public TileObserver, private util::noncopyable { public: - Source(SourceType, - std::string id, - std::string url, - uint16_t tileSize); + Source(SourceType, std::string id, uint16_t tileSize); ~Source() override; bool loaded = false; @@ -71,7 +68,6 @@ public: const SourceType type; const std::string id; - const std::string url; uint16_t tileSize = util::tileSize; bool enabled = false; diff --git a/src/mbgl/style/sources/geojson_source.cpp b/src/mbgl/style/sources/geojson_source.cpp index 6e1068dadb..7daf148291 100644 --- a/src/mbgl/style/sources/geojson_source.cpp +++ b/src/mbgl/style/sources/geojson_source.cpp @@ -63,7 +63,8 @@ std::unique_ptr<GeoJSONSource> GeoJSONSource::parse(const std::string& id, GeoJSONSource::GeoJSONSource(std::string id_, std::string url_, std::unique_ptr<mapbox::geojsonvt::GeoJSONVT>&& geojsonvt_) - : Source(SourceType::GeoJSON, std::move(id_), std::move(url_), util::tileSize), + : Source(SourceType::GeoJSON, std::move(id_), util::tileSize), + url(url_), geojsonvt(std::move(geojsonvt_)) { } diff --git a/src/mbgl/style/sources/geojson_source.hpp b/src/mbgl/style/sources/geojson_source.hpp index 7022d387e9..996dac3aca 100644 --- a/src/mbgl/style/sources/geojson_source.hpp +++ b/src/mbgl/style/sources/geojson_source.hpp @@ -28,10 +28,13 @@ public: void load(FileSource&) final; + const std::string& getURL() const { return url; } + private: Range<uint8_t> getZoomRange() final; std::unique_ptr<Tile> createTile(const OverscaledTileID&, const UpdateParameters&) final; + const std::string url; std::unique_ptr<mapbox::geojsonvt::GeoJSONVT> geojsonvt; std::unique_ptr<AsyncRequest> req; }; diff --git a/src/mbgl/style/tile_source.cpp b/src/mbgl/style/tile_source.cpp index 12c62f07a5..29cbcc7226 100644 --- a/src/mbgl/style/tile_source.cpp +++ b/src/mbgl/style/tile_source.cpp @@ -12,7 +12,8 @@ TileSource::TileSource(SourceType type_, std::string url_, uint16_t tileSize_, std::unique_ptr<Tileset>&& tileset_) - : Source(type_, std::move(id_), std::move(url_), tileSize_), + : Source(type_, std::move(id_), tileSize_), + url(std::move(url_)), tileset(std::move(tileset_)) { } diff --git a/src/mbgl/style/tile_source.hpp b/src/mbgl/style/tile_source.hpp index c0dc0da8c7..b001d174f6 100644 --- a/src/mbgl/style/tile_source.hpp +++ b/src/mbgl/style/tile_source.hpp @@ -24,11 +24,13 @@ public: void load(FileSource&) final; + const std::string& getURL() const { return url; } const Tileset* getTileset() const { return tileset.get(); } protected: Range<uint8_t> getZoomRange() final; + const std::string url; std::unique_ptr<const Tileset> tileset; std::unique_ptr<AsyncRequest> req; }; diff --git a/test/style/source.cpp b/test/style/source.cpp index 7a574e9e51..82763c99f1 100644 --- a/test/style/source.cpp +++ b/test/style/source.cpp @@ -82,7 +82,7 @@ TEST(Source, LoadingFail) { }; test.observer.sourceError = [&] (Source& source, std::exception_ptr error) { - EXPECT_EQ("url", source.url); + EXPECT_EQ("source", source.id); EXPECT_EQ("Failed by the test case", util::toString(error)); test.end(); }; @@ -105,7 +105,7 @@ TEST(Source, LoadingCorrupt) { }; test.observer.sourceError = [&] (Source& source, std::exception_ptr error) { - EXPECT_EQ("url", source.url); + EXPECT_EQ("source", source.id); EXPECT_EQ("0 - Invalid value.", util::toString(error)); test.end(); }; |