[core] Merge VectorTileSource into VectorTileData
This commit is contained in:
committed by
Konstantin Käfer
parent
91ddcbce20
commit
8d8d03a451
@@ -10,7 +10,7 @@ class Response;
|
||||
|
||||
template <typename T, typename I>
|
||||
class FileBasedTileSource : public T {
|
||||
protected:
|
||||
public:
|
||||
FileBasedTileSource(typename T::data_type&, const Resource&, FileSource&);
|
||||
virtual ~FileBasedTileSource() = default;
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#include <mbgl/tile/vector_tile_data.hpp>
|
||||
#include <mbgl/tile/vector_tile_source.hpp>
|
||||
#include <mbgl/tile/file_based_tile_source.hpp>
|
||||
#include <mbgl/tile/file_based_tile_source_impl.hpp>
|
||||
#include <mbgl/tile/tile_source.hpp>
|
||||
#include <mbgl/tile/vector_tile.hpp>
|
||||
#include <mbgl/style/update_parameters.hpp>
|
||||
#include <mbgl/util/tileset.hpp>
|
||||
#include <mbgl/util/async_request.hpp>
|
||||
@@ -15,7 +18,8 @@ VectorTileData::VectorTileData(const OverscaledTileID& overscaledTileID,
|
||||
const auto resource = Resource::tile(
|
||||
tileset.tiles.at(0), parameters.pixelRatio, overscaledTileID.canonical.x,
|
||||
overscaledTileID.canonical.y, overscaledTileID.canonical.z);
|
||||
tileSource = std::make_unique<VectorTileSource>(*this, resource, parameters.fileSource);
|
||||
tileSource = std::make_unique<FileBasedTileSource<GeometryTileSource, VectorTileData>>(
|
||||
*this, resource, parameters.fileSource);
|
||||
}
|
||||
|
||||
VectorTileData::~VectorTileData() = default;
|
||||
@@ -24,4 +28,8 @@ void VectorTileData::setNecessity(Necessity necessity) {
|
||||
tileSource->setNecessity(static_cast<TileSource::Necessity>(necessity));
|
||||
}
|
||||
|
||||
std::unique_ptr<GeometryTile> VectorTileData::parseData(std::shared_ptr<const std::string> data) {
|
||||
return data ? std::make_unique<VectorTile>(data) : nullptr;
|
||||
}
|
||||
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -6,6 +6,7 @@ namespace mbgl {
|
||||
|
||||
class Tileset;
|
||||
class TileSource;
|
||||
class GeometryTile;
|
||||
|
||||
namespace style {
|
||||
class UpdateParameters;
|
||||
@@ -21,6 +22,8 @@ public:
|
||||
|
||||
void setNecessity(Necessity) final;
|
||||
|
||||
static std::unique_ptr<GeometryTile> parseData(std::shared_ptr<const std::string>);
|
||||
|
||||
private:
|
||||
std::unique_ptr<TileSource> tileSource;
|
||||
};
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
#include <mbgl/tile/vector_tile_source.hpp>
|
||||
#include <mbgl/tile/file_based_tile_source_impl.hpp>
|
||||
#include <mbgl/tile/geometry_tile_data.hpp>
|
||||
#include <mbgl/tile/vector_tile.hpp>
|
||||
|
||||
namespace mbgl {
|
||||
|
||||
VectorTileSource::VectorTileSource(GeometryTileData& tileData_,
|
||||
const Resource& resource_,
|
||||
FileSource& fileSource_)
|
||||
: FileBasedTileSource<GeometryTileSource, VectorTileSource>(tileData_, resource_, fileSource_) {
|
||||
}
|
||||
|
||||
std::unique_ptr<GeometryTile> VectorTileSource::parseData(std::shared_ptr<const std::string> data) {
|
||||
return data ? std::make_unique<VectorTile>(data) : nullptr;
|
||||
}
|
||||
|
||||
} // namespace mbgl
|
||||
@@ -1,20 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <mbgl/tile/tile_source.hpp>
|
||||
#include <mbgl/tile/file_based_tile_source.hpp>
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace mbgl {
|
||||
|
||||
class GeometryTile;
|
||||
|
||||
class VectorTileSource final : public FileBasedTileSource<GeometryTileSource, VectorTileSource> {
|
||||
public:
|
||||
VectorTileSource(GeometryTileData&, const Resource&, FileSource&);
|
||||
virtual ~VectorTileSource() = default;
|
||||
|
||||
static std::unique_ptr<GeometryTile> parseData(std::shared_ptr<const std::string>);
|
||||
};
|
||||
|
||||
} // namespace mbgl
|
||||
Reference in New Issue
Block a user