#pragma once #include #include #include namespace mbgl { class AsyncRequest; namespace style { class TileSource : public Source { public: TileSource(std::string id, variant urlOrTileset, uint16_t tileSize, SourceType sourceType); ~TileSource() override; const variant& getURLOrTileset() const; std::optional getURL() const; uint16_t getTileSize() const; class Impl; const Impl& impl() const; void loadDescription(FileSource&) final; protected: Mutable createMutable() const noexcept final; virtual void setTilesetOverrides(Tileset& tileset); private: const variant urlOrTileset; std::unique_ptr req; }; template <> inline bool Source::is() const { return getType() == SourceType::Raster; } } // namespace style } // namespace mbgl