summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMolly Lloyd <molly@mapbox.com>2018-01-17 17:05:21 -0800
committerMolly Lloyd <molly@mapbox.com>2018-01-17 18:17:32 -0800
commitf88bb0d2cc9326b3cab15ba72a9a5ddb67e2ea66 (patch)
treeceeffb4ff1df3f4b738edb603bc82fff0cbcdec8
parent0bc33c9573fdf1f5c861f6bd55d691b517e1727f (diff)
downloadqtlocation-mapboxgl-upstream/dedup-raster-hillshade.tar.gz
make RasterDEMSource inherit from RasterSourceupstream/dedup-raster-hillshade
-rw-r--r--cmake/core-files.cmake2
-rw-r--r--include/mbgl/style/sources/raster_dem_source.hpp18
-rw-r--r--include/mbgl/style/sources/raster_source.hpp4
-rw-r--r--src/mbgl/renderer/render_source.cpp2
-rw-r--r--src/mbgl/renderer/sources/render_raster_dem_source.cpp6
-rw-r--r--src/mbgl/renderer/sources/render_raster_dem_source.hpp6
-rw-r--r--src/mbgl/style/sources/raster_dem_source.cpp67
-rw-r--r--src/mbgl/style/sources/raster_dem_source_impl.cpp33
-rw-r--r--src/mbgl/style/sources/raster_dem_source_impl.hpp25
-rw-r--r--src/mbgl/style/sources/raster_source.cpp4
-rw-r--r--src/mbgl/style/sources/raster_source_impl.cpp4
-rw-r--r--src/mbgl/style/sources/raster_source_impl.hpp2
12 files changed, 18 insertions, 155 deletions
diff --git a/cmake/core-files.cmake b/cmake/core-files.cmake
index 987c0bf391..8148fcdc88 100644
--- a/cmake/core-files.cmake
+++ b/cmake/core-files.cmake
@@ -560,8 +560,6 @@ set(MBGL_CORE_FILES
src/mbgl/style/sources/image_source_impl.cpp
src/mbgl/style/sources/image_source_impl.hpp
src/mbgl/style/sources/raster_dem_source.cpp
- src/mbgl/style/sources/raster_dem_source_impl.cpp
- src/mbgl/style/sources/raster_dem_source_impl.hpp
src/mbgl/style/sources/raster_source.cpp
src/mbgl/style/sources/raster_source_impl.cpp
src/mbgl/style/sources/raster_source_impl.hpp
diff --git a/include/mbgl/style/sources/raster_dem_source.hpp b/include/mbgl/style/sources/raster_dem_source.hpp
index ffa86cae3a..82588613bc 100644
--- a/include/mbgl/style/sources/raster_dem_source.hpp
+++ b/include/mbgl/style/sources/raster_dem_source.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include <mbgl/style/source.hpp>
+#include <mbgl/style/sources/raster_source.hpp>
#include <mbgl/util/tileset.hpp>
#include <mbgl/util/variant.hpp>
@@ -10,24 +10,10 @@ class AsyncRequest;
namespace style {
-class RasterDEMSource : public Source {
+class RasterDEMSource : public RasterSource {
public:
RasterDEMSource(std::string id, variant<std::string, Tileset> urlOrTileset, uint16_t tileSize);
- ~RasterDEMSource() final;
- const variant<std::string, Tileset>& getURLOrTileset() const;
- optional<std::string> getURL() const;
-
- uint16_t getTileSize() const;
-
- class Impl;
- const Impl& impl() const;
-
- void loadDescription(FileSource&) final;
-
-private:
- const variant<std::string, Tileset> urlOrTileset;
- std::unique_ptr<AsyncRequest> req;
};
template <>
diff --git a/include/mbgl/style/sources/raster_source.hpp b/include/mbgl/style/sources/raster_source.hpp
index 7f23a7ca4b..5aa81aa979 100644
--- a/include/mbgl/style/sources/raster_source.hpp
+++ b/include/mbgl/style/sources/raster_source.hpp
@@ -12,8 +12,8 @@ namespace style {
class RasterSource : public Source {
public:
- RasterSource(std::string id, variant<std::string, Tileset> urlOrTileset, uint16_t tileSize);
- ~RasterSource() final;
+ RasterSource(std::string id, variant<std::string, Tileset> urlOrTileset, uint16_t tileSize, SourceType sourceType = SourceType::Raster);
+ ~RasterSource() override;
const variant<std::string, Tileset>& getURLOrTileset() const;
optional<std::string> getURL() const;
diff --git a/src/mbgl/renderer/render_source.cpp b/src/mbgl/renderer/render_source.cpp
index f75ae5a18b..d160eb16e3 100644
--- a/src/mbgl/renderer/render_source.cpp
+++ b/src/mbgl/renderer/render_source.cpp
@@ -21,7 +21,7 @@ std::unique_ptr<RenderSource> RenderSource::create(Immutable<Source::Impl> impl)
case SourceType::Raster:
return std::make_unique<RenderRasterSource>(staticImmutableCast<RasterSource::Impl>(impl));
case SourceType::RasterDEM:
- return std::make_unique<RenderRasterDEMSource>(staticImmutableCast<RasterDEMSource::Impl>(impl));
+ return std::make_unique<RenderRasterDEMSource>(staticImmutableCast<RasterSource::Impl>(impl));
case SourceType::GeoJSON:
return std::make_unique<RenderGeoJSONSource>(staticImmutableCast<GeoJSONSource::Impl>(impl));
case SourceType::Video:
diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.cpp b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
index ff394bac8e..b8bb2ce1cd 100644
--- a/src/mbgl/renderer/sources/render_raster_dem_source.cpp
+++ b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
@@ -10,13 +10,13 @@ namespace mbgl {
using namespace style;
-RenderRasterDEMSource::RenderRasterDEMSource(Immutable<style::RasterDEMSource::Impl> impl_)
+RenderRasterDEMSource::RenderRasterDEMSource(Immutable<style::RasterSource::Impl> impl_)
: RenderSource(impl_) {
tilePyramid.setObserver(this);
}
-const style::RasterDEMSource::Impl& RenderRasterDEMSource::impl() const {
- return static_cast<const style::RasterDEMSource::Impl&>(*baseImpl);
+const style::RasterSource::Impl& RenderRasterDEMSource::impl() const {
+ return static_cast<const style::RasterSource::Impl&>(*baseImpl);
}
bool RenderRasterDEMSource::isLoaded() const {
diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.hpp b/src/mbgl/renderer/sources/render_raster_dem_source.hpp
index b32d3705cb..b6b8bf977c 100644
--- a/src/mbgl/renderer/sources/render_raster_dem_source.hpp
+++ b/src/mbgl/renderer/sources/render_raster_dem_source.hpp
@@ -2,13 +2,13 @@
#include <mbgl/renderer/render_source.hpp>
#include <mbgl/renderer/tile_pyramid.hpp>
-#include <mbgl/style/sources/raster_dem_source_impl.hpp>
+#include <mbgl/style/sources/raster_source_impl.hpp>
namespace mbgl {
class RenderRasterDEMSource : public RenderSource {
public:
- RenderRasterDEMSource(Immutable<style::RasterDEMSource::Impl>);
+ RenderRasterDEMSource(Immutable<style::RasterSource::Impl>);
bool isLoaded() const final;
@@ -37,7 +37,7 @@ public:
void dumpDebugLogs() const final;
private:
- const style::RasterDEMSource::Impl& impl() const;
+ const style::RasterSource::Impl& impl() const;
TilePyramid tilePyramid;
optional<std::vector<std::string>> tileURLTemplates;
diff --git a/src/mbgl/style/sources/raster_dem_source.cpp b/src/mbgl/style/sources/raster_dem_source.cpp
index 9a270297fc..dc9feb8eeb 100644
--- a/src/mbgl/style/sources/raster_dem_source.cpp
+++ b/src/mbgl/style/sources/raster_dem_source.cpp
@@ -1,5 +1,5 @@
#include <mbgl/style/sources/raster_dem_source.hpp>
-#include <mbgl/style/sources/raster_dem_source_impl.hpp>
+#include <mbgl/style/sources/raster_source_impl.hpp>
#include <mbgl/style/source_observer.hpp>
#include <mbgl/style/conversion/json.hpp>
#include <mbgl/style/conversion/tileset.hpp>
@@ -10,73 +10,10 @@ namespace mbgl {
namespace style {
RasterDEMSource::RasterDEMSource(std::string id, variant<std::string, Tileset> urlOrTileset_, uint16_t tileSize)
- : Source(makeMutable<Impl>(std::move(id), tileSize)),
- urlOrTileset(std::move(urlOrTileset_)) {
+ : RasterSource(std::move(id), urlOrTileset_, tileSize, SourceType::RasterDEM){
}
-RasterDEMSource::~RasterDEMSource() = default;
-const RasterDEMSource::Impl& RasterDEMSource::impl() const {
- return static_cast<const Impl&>(*baseImpl);
-}
-
-const variant<std::string, Tileset>& RasterDEMSource::getURLOrTileset() const {
- return urlOrTileset;
-}
-
-optional<std::string> RasterDEMSource::getURL() const {
- if (urlOrTileset.is<Tileset>()) {
- return {};
- }
-
- return urlOrTileset.get<std::string>();
-}
-
-uint16_t RasterDEMSource::getTileSize() const {
- return impl().getTileSize();
-}
-
-void RasterDEMSource::loadDescription(FileSource& fileSource) {
- if (urlOrTileset.is<Tileset>()) {
- baseImpl = makeMutable<Impl>(impl(), urlOrTileset.get<Tileset>());
- loaded = true;
- return;
- }
-
- if (req) {
- return;
- }
-
- const std::string& url = urlOrTileset.get<std::string>();
- req = fileSource.request(Resource::source(url), [this, url](Response res) {
- if (res.error) {
- observer->onSourceError(*this, std::make_exception_ptr(std::runtime_error(res.error->message)));
- } else if (res.notModified) {
- return;
- } else if (res.noContent) {
- observer->onSourceError(*this, std::make_exception_ptr(std::runtime_error("unexpectedly empty TileJSON")));
- } else {
- conversion::Error error;
- optional<Tileset> tileset = conversion::convertJSON<Tileset>(*res.data, error);
- if (!tileset) {
- observer->onSourceError(*this, std::make_exception_ptr(std::runtime_error(error.message)));
- return;
- }
-
- util::mapbox::canonicalizeTileset(*tileset, url, getType(), getTileSize());
- bool changed = impl().getTileset() != *tileset;
-
- baseImpl = makeMutable<Impl>(impl(), *tileset);
- loaded = true;
-
- observer->onSourceLoaded(*this);
-
- if (changed) {
- observer->onSourceChanged(*this);
- }
- }
- });
-}
} // namespace style
} // namespace mbgl
diff --git a/src/mbgl/style/sources/raster_dem_source_impl.cpp b/src/mbgl/style/sources/raster_dem_source_impl.cpp
deleted file mode 100644
index 92ddcd14cb..0000000000
--- a/src/mbgl/style/sources/raster_dem_source_impl.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <mbgl/style/sources/raster_dem_source_impl.hpp>
-
-namespace mbgl {
-namespace style {
-
-RasterDEMSource::Impl::Impl(std::string id_, uint16_t tileSize_)
- : Source::Impl(SourceType::RasterDEM, std::move(id_)),
- tileSize(tileSize_) {
-}
-
-RasterDEMSource::Impl::Impl(const Impl& other, Tileset tileset_)
- : Source::Impl(other),
- tileSize(other.tileSize),
- tileset(std::move(tileset_)) {
-}
-
-uint16_t RasterDEMSource::Impl::getTileSize() const {
- return tileSize;
-}
-
-optional<Tileset> RasterDEMSource::Impl::getTileset() const {
- return tileset;
-}
-
-optional<std::string> RasterDEMSource::Impl::getAttribution() const {
- if (!tileset) {
- return {};
- }
- return tileset->attribution;
-}
-
-} // namespace style
-} // namespace mbgl
diff --git a/src/mbgl/style/sources/raster_dem_source_impl.hpp b/src/mbgl/style/sources/raster_dem_source_impl.hpp
deleted file mode 100644
index 78175ebfc4..0000000000
--- a/src/mbgl/style/sources/raster_dem_source_impl.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#pragma once
-
-#include <mbgl/style/sources/raster_dem_source.hpp>
-#include <mbgl/style/source_impl.hpp>
-
-namespace mbgl {
-namespace style {
-
-class RasterDEMSource::Impl : public Source::Impl {
-public:
- Impl(std::string id, uint16_t tileSize);
- Impl(const Impl&, Tileset);
-
- optional<Tileset> getTileset() const;
- uint16_t getTileSize() const;
-
- optional<std::string> getAttribution() const final;
-
-private:
- uint16_t tileSize;
- optional<Tileset> tileset;
-};
-
-} // namespace style
-} // namespace mbgl
diff --git a/src/mbgl/style/sources/raster_source.cpp b/src/mbgl/style/sources/raster_source.cpp
index 0a0412a4ed..53f29d660b 100644
--- a/src/mbgl/style/sources/raster_source.cpp
+++ b/src/mbgl/style/sources/raster_source.cpp
@@ -9,8 +9,8 @@
namespace mbgl {
namespace style {
-RasterSource::RasterSource(std::string id, variant<std::string, Tileset> urlOrTileset_, uint16_t tileSize)
- : Source(makeMutable<Impl>(std::move(id), tileSize)),
+RasterSource::RasterSource(std::string id, variant<std::string, Tileset> urlOrTileset_, uint16_t tileSize, SourceType sourceType)
+ : Source(makeMutable<Impl>(sourceType, std::move(id), tileSize)),
urlOrTileset(std::move(urlOrTileset_)) {
}
diff --git a/src/mbgl/style/sources/raster_source_impl.cpp b/src/mbgl/style/sources/raster_source_impl.cpp
index 50dae1f07e..4db25aafd1 100644
--- a/src/mbgl/style/sources/raster_source_impl.cpp
+++ b/src/mbgl/style/sources/raster_source_impl.cpp
@@ -3,8 +3,8 @@
namespace mbgl {
namespace style {
-RasterSource::Impl::Impl(std::string id_, uint16_t tileSize_)
- : Source::Impl(SourceType::Raster, std::move(id_)),
+RasterSource::Impl::Impl(SourceType sourceType, std::string id_, uint16_t tileSize_)
+ : Source::Impl(sourceType, std::move(id_)),
tileSize(tileSize_) {
}
diff --git a/src/mbgl/style/sources/raster_source_impl.hpp b/src/mbgl/style/sources/raster_source_impl.hpp
index c41d5485b2..96f59a2159 100644
--- a/src/mbgl/style/sources/raster_source_impl.hpp
+++ b/src/mbgl/style/sources/raster_source_impl.hpp
@@ -8,7 +8,7 @@ namespace style {
class RasterSource::Impl : public Source::Impl {
public:
- Impl(std::string id, uint16_t tileSize);
+ Impl(SourceType sourceType, std::string id, uint16_t tileSize);
Impl(const Impl&, Tileset);
optional<Tileset> getTileset() const;