summaryrefslogtreecommitdiff
path: root/src/mbgl/style
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style')
-rw-r--r--src/mbgl/style/source.cpp6
-rw-r--r--src/mbgl/style/sources/raster_dem_source.cpp7
-rw-r--r--src/mbgl/style/sources/raster_source.cpp17
-rw-r--r--src/mbgl/style/sources/vector_source.cpp17
4 files changed, 33 insertions, 14 deletions
diff --git a/src/mbgl/style/source.cpp b/src/mbgl/style/source.cpp
index db195867c0..6ffaae0305 100644
--- a/src/mbgl/style/source.cpp
+++ b/src/mbgl/style/source.cpp
@@ -125,12 +125,10 @@ void Source::serializeTileSet(Value& value, const mbgl::Tileset& tileset) const
}
}
-void Source::serializeUrlOrTileSet(Value& value, const mbgl::variant<std::string, mbgl::Tileset>* urlOrTileSet) const {
+void Source::serializeUrlOrTileSet(Value& value, const mbgl::variant<std::string, mbgl::Tileset>& urlOrTileSet) const {
assert(value.getObject());
- if (!urlOrTileSet) return;
-
- urlOrTileSet->match(
+ urlOrTileSet.match(
[&](const std::string& url) {
value.getObject()->insert({"url", url});
},
diff --git a/src/mbgl/style/sources/raster_dem_source.cpp b/src/mbgl/style/sources/raster_dem_source.cpp
index a7efc2ba69..2535772f85 100644
--- a/src/mbgl/style/sources/raster_dem_source.cpp
+++ b/src/mbgl/style/sources/raster_dem_source.cpp
@@ -29,10 +29,9 @@ static std::string tilesetDEMEncodingToString(mbgl::Tileset::DEMEncoding encodin
Value RasterDEMSource::serialize() const {
auto value = RasterSource::serialize();
- getURLOrTileset()->match([](const std::string&) {},
- [&](const mbgl::Tileset& tileset) {
- value.getObject()->insert({"encoding", tilesetDEMEncodingToString(tileset.encoding)});
- });
+ if (auto* tileset = getTileset()) {
+ value.getObject()->insert({"encoding", tilesetDEMEncodingToString(tileset->encoding)});
+ }
return value;
}
diff --git a/src/mbgl/style/sources/raster_source.cpp b/src/mbgl/style/sources/raster_source.cpp
index 75c5acf24e..8ee442a200 100644
--- a/src/mbgl/style/sources/raster_source.cpp
+++ b/src/mbgl/style/sources/raster_source.cpp
@@ -25,8 +25,11 @@ const RasterSource::Impl& RasterSource::impl() const {
return static_cast<const Impl&>(*baseImpl);
}
-const variant<std::string, Tileset>* RasterSource::getURLOrTileset() const {
- return &urlOrTileset;
+const Tileset* RasterSource::getTileset() const {
+ if (urlOrTileset.is<Tileset>()) {
+ return &urlOrTileset.get<Tileset>();
+ }
+ return nullptr;
}
optional<std::string> RasterSource::getURL() const {
@@ -37,6 +40,14 @@ optional<std::string> RasterSource::getURL() const {
return urlOrTileset.get<std::string>();
}
+optional<Resource> RasterSource::getResource() const {
+ if (urlOrTileset.is<std::string>()) {
+ return Resource::source(urlOrTileset.get<std::string>());
+ }
+
+ return nullopt;
+}
+
void RasterSource::loadDescription(FileSource& fileSource) {
if (urlOrTileset.is<Tileset>()) {
baseImpl = createMutable(urlOrTileset.get<Tileset>());
@@ -94,7 +105,7 @@ Mutable<Source::Impl> RasterSource::createMutable(Tileset tileset) const noexcep
Value RasterSource::serialize() const {
auto value = Source::serialize();
- serializeUrlOrTileSet(value, getURLOrTileset());
+ serializeUrlOrTileSet(value, urlOrTileset);
return value;
}
diff --git a/src/mbgl/style/sources/vector_source.cpp b/src/mbgl/style/sources/vector_source.cpp
index c08be53e6f..39f6fde76c 100644
--- a/src/mbgl/style/sources/vector_source.cpp
+++ b/src/mbgl/style/sources/vector_source.cpp
@@ -30,8 +30,11 @@ const VectorSource::Impl& VectorSource::impl() const {
return static_cast<const Impl&>(*baseImpl);
}
-const variant<std::string, Tileset>* VectorSource::getURLOrTileset() const {
- return &urlOrTileset;
+const Tileset* VectorSource::getTileset() const {
+ if (urlOrTileset.is<Tileset>()) {
+ return &urlOrTileset.get<Tileset>();
+ }
+ return nullptr;
}
optional<std::string> VectorSource::getURL() const {
@@ -42,6 +45,14 @@ optional<std::string> VectorSource::getURL() const {
return urlOrTileset.get<std::string>();
}
+optional<Resource> VectorSource::getResource() const {
+ if (urlOrTileset.is<std::string>()) {
+ return Resource::source(urlOrTileset.get<std::string>());
+ }
+
+ return nullopt;
+}
+
void VectorSource::loadDescription(FileSource& fileSource) {
if (urlOrTileset.is<Tileset>()) {
baseImpl = makeMutable<Impl>(impl(), urlOrTileset.get<Tileset>());
@@ -100,7 +111,7 @@ Mutable<Source::Impl> VectorSource::createMutable() const noexcept {
Value VectorSource::serialize() const {
auto result = Source::serialize();
- serializeUrlOrTileSet(result, getURLOrTileset());
+ serializeUrlOrTileSet(result, urlOrTileset);
return result;
}