[core] Merge VectorTileSource into VectorTileData

This commit is contained in:
John Firebaugh
2016-06-06 17:44:00 -07:00
committed by Konstantin Käfer
parent 91ddcbce20
commit 8d8d03a451
5 changed files with 14 additions and 41 deletions

View File

@@ -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;

View File

@@ -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

View File

@@ -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;
};

View File

@@ -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

View File

@@ -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