summaryrefslogtreecommitdiff
path: root/src/mbgl
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-06-14 10:55:58 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-06-14 11:25:45 -0700
commit9dfcb95e4fe333922306eadd4df5cbde2f03a6c1 (patch)
tree61c7fb9d3dede6097bda1fd35806131cb21ab957 /src/mbgl
parent755cc80edfc53a680030a88a661afe1d9edd1f75 (diff)
downloadqtlocation-mapboxgl-9dfcb95e4fe333922306eadd4df5cbde2f03a6c1.tar.gz
[core] Push Source::tileset down to TileSource
Diffstat (limited to 'src/mbgl')
-rw-r--r--src/mbgl/annotation/annotation_source.cpp2
-rw-r--r--src/mbgl/style/parser.cpp1
-rw-r--r--src/mbgl/style/parser.hpp3
-rw-r--r--src/mbgl/style/source.cpp4
-rw-r--r--src/mbgl/style/source.hpp10
-rw-r--r--src/mbgl/style/sources/geojson_source.cpp10
-rw-r--r--src/mbgl/style/sources/geojson_source.hpp1
-rw-r--r--src/mbgl/style/tile_source.cpp4
-rw-r--r--src/mbgl/style/tile_source.hpp6
9 files changed, 18 insertions, 23 deletions
diff --git a/src/mbgl/annotation/annotation_source.cpp b/src/mbgl/annotation/annotation_source.cpp
index f246d7aed8..55e6fc82a3 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, std::make_unique<Tileset>()) {
+ : Source(SourceType::Annotations, AnnotationManager::SourceID, "", util::tileSize) {
}
Range<uint8_t> AnnotationSource::getZoomRange() {
diff --git a/src/mbgl/style/parser.cpp b/src/mbgl/style/parser.cpp
index 1ca090643d..07db3f0091 100644
--- a/src/mbgl/style/parser.cpp
+++ b/src/mbgl/style/parser.cpp
@@ -15,6 +15,7 @@
#include <mbgl/tile/geometry_tile_data.hpp>
#include <mbgl/util/mapbox.hpp>
#include <mbgl/util/enum.hpp>
+#include <mbgl/util/tileset.hpp>
#include <rapidjson/document.h>
#include <rapidjson/error/en.h>
diff --git a/src/mbgl/style/parser.hpp b/src/mbgl/style/parser.hpp
index e60a33b93f..a04f73bde4 100644
--- a/src/mbgl/style/parser.hpp
+++ b/src/mbgl/style/parser.hpp
@@ -14,6 +14,9 @@
#include <forward_list>
namespace mbgl {
+
+class Tileset;
+
namespace style {
std::unique_ptr<Tileset> parseTileJSON(const std::string& json, const std::string& sourceURL, SourceType, uint16_t tileSize);
diff --git a/src/mbgl/style/source.cpp b/src/mbgl/style/source.cpp
index 086e0b745c..3c5690e980 100644
--- a/src/mbgl/style/source.cpp
+++ b/src/mbgl/style/source.cpp
@@ -35,13 +35,11 @@ static SourceObserver nullObserver;
Source::Source(SourceType type_,
std::string id_,
std::string url_,
- uint16_t tileSize_,
- std::unique_ptr<Tileset>&& tileset_)
+ uint16_t tileSize_)
: type(type_),
id(std::move(id_)),
url(std::move(url_)),
tileSize(tileSize_),
- tileset(std::move(tileset_)),
observer(&nullObserver) {
}
diff --git a/src/mbgl/style/source.hpp b/src/mbgl/style/source.hpp
index 862ee52068..36e6570fb5 100644
--- a/src/mbgl/style/source.hpp
+++ b/src/mbgl/style/source.hpp
@@ -10,9 +10,8 @@
#include <mbgl/util/mat4.hpp>
#include <mbgl/util/rapidjson.hpp>
#include <mbgl/util/feature.hpp>
-#include <mbgl/util/tileset.hpp>
+#include <mbgl/util/range.hpp>
-#include <forward_list>
#include <vector>
#include <map>
@@ -36,16 +35,13 @@ public:
Source(SourceType,
std::string id,
std::string url,
- uint16_t tileSize,
- std::unique_ptr<Tileset>&&);
+ uint16_t tileSize);
~Source() override;
bool loaded = false;
virtual void load(FileSource&) = 0;
bool isLoaded() const;
- const Tileset* getTileset() const { return tileset.get(); }
-
// Request or parse all the tiles relevant for the "TransformState". This method
// will return true if all the tiles were scheduled for updating of false if
// they were not. shouldReparsePartialTiles must be set to "true" if there is
@@ -91,8 +87,6 @@ private:
protected:
void invalidateTiles();
- std::unique_ptr<const Tileset> tileset;
-
SourceObserver* observer = nullptr;
private:
diff --git a/src/mbgl/style/sources/geojson_source.cpp b/src/mbgl/style/sources/geojson_source.cpp
index dbcef95344..6e1068dadb 100644
--- a/src/mbgl/style/sources/geojson_source.cpp
+++ b/src/mbgl/style/sources/geojson_source.cpp
@@ -34,7 +34,6 @@ std::unique_ptr<mapbox::geojsonvt::GeoJSONVT> parseGeoJSON(const JSValue& value)
std::unique_ptr<GeoJSONSource> GeoJSONSource::parse(const std::string& id,
const JSValue& value) {
- auto tileset = std::make_unique<Tileset>();
std::unique_ptr<mapbox::geojsonvt::GeoJSONVT> geojsonvt;
std::string url;
@@ -58,14 +57,13 @@ std::unique_ptr<GeoJSONSource> GeoJSONSource::parse(const std::string& id,
return nullptr;
}
- return std::make_unique<GeoJSONSource>(id, url, std::move(tileset), std::move(geojsonvt));
+ return std::make_unique<GeoJSONSource>(id, url, std::move(geojsonvt));
}
GeoJSONSource::GeoJSONSource(std::string id_,
std::string url_,
- std::unique_ptr<Tileset>&& tileset_,
std::unique_ptr<mapbox::geojsonvt::GeoJSONVT>&& geojsonvt_)
- : Source(SourceType::GeoJSON, std::move(id_), std::move(url_), util::tileSize, std::move(tileset_)),
+ : Source(SourceType::GeoJSON, std::move(id_), std::move(url_), util::tileSize),
geojsonvt(std::move(geojsonvt_)) {
}
@@ -94,8 +92,6 @@ void GeoJSONSource::load(FileSource& fileSource) {
} else if (res.noContent) {
observer->onSourceError(*this, std::make_exception_ptr(std::runtime_error("unexpectedly empty GeoJSON")));
} else {
- std::unique_ptr<Tileset> newTileset = std::make_unique<Tileset>();
-
rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::CrtAllocator> d;
d.Parse<0>(res.data->c_str());
@@ -107,11 +103,9 @@ void GeoJSONSource::load(FileSource& fileSource) {
}
geojsonvt = style::parseGeoJSON(d);
- newTileset->zoomRange.max = geojsonvt->options.maxZoom;
invalidateTiles();
- tileset = std::move(newTileset);
loaded = true;
observer->onSourceLoaded(*this);
}
diff --git a/src/mbgl/style/sources/geojson_source.hpp b/src/mbgl/style/sources/geojson_source.hpp
index 83f5290873..7022d387e9 100644
--- a/src/mbgl/style/sources/geojson_source.hpp
+++ b/src/mbgl/style/sources/geojson_source.hpp
@@ -23,7 +23,6 @@ public:
GeoJSONSource(std::string id,
std::string url,
- std::unique_ptr<Tileset>&&,
std::unique_ptr<mapbox::geojsonvt::GeoJSONVT>&&);
~GeoJSONSource() final;
diff --git a/src/mbgl/style/tile_source.cpp b/src/mbgl/style/tile_source.cpp
index ef58d87eb5..12c62f07a5 100644
--- a/src/mbgl/style/tile_source.cpp
+++ b/src/mbgl/style/tile_source.cpp
@@ -1,6 +1,7 @@
#include <mbgl/style/tile_source.hpp>
#include <mbgl/style/source_observer.hpp>
#include <mbgl/style/parser.hpp>
+#include <mbgl/util/tileset.hpp>
#include <mbgl/storage/file_source.hpp>
namespace mbgl {
@@ -11,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_, std::move(tileset_)) {
+ : Source(type_, std::move(id_), std::move(url_), tileSize_),
+ tileset(std::move(tileset_)) {
}
TileSource::~TileSource() = default;
diff --git a/src/mbgl/style/tile_source.hpp b/src/mbgl/style/tile_source.hpp
index 7fa2f8157e..c0dc0da8c7 100644
--- a/src/mbgl/style/tile_source.hpp
+++ b/src/mbgl/style/tile_source.hpp
@@ -4,6 +4,7 @@
namespace mbgl {
+class Tileset;
class AsyncRequest;
namespace style {
@@ -23,9 +24,12 @@ public:
void load(FileSource&) final;
-private:
+ const Tileset* getTileset() const { return tileset.get(); }
+
+protected:
Range<uint8_t> getZoomRange() final;
+ std::unique_ptr<const Tileset> tileset;
std::unique_ptr<AsyncRequest> req;
};