#pragma once #include namespace mbgl { class Tileset; class AsyncRequest; namespace style { /* Shared implementation for VectorSource and RasterSource. Should eventually be refactored to use composition rather than inheritance. */ class TileSource : public Source { public: TileSource(SourceType, std::string id, std::string url, uint16_t tileSize, std::unique_ptr&&); ~TileSource() override; void load(FileSource&) final; const std::string& getURL() const { return url; } uint16_t getTileSize() const final { return tileSize; } const Tileset* getTileset() const { return tileset.get(); } protected: Range getZoomRange() final; const uint16_t tileSize; const std::string url; std::unique_ptr tileset; std::unique_ptr req; }; } // namespace style } // namespace mbgl