#pragma once #include #include namespace mbgl { class RenderSource; namespace style { class SourceObserver; class Source::Impl { public: virtual ~Impl() = default; Impl& operator=(const Impl&) = delete; virtual optional getAttribution() const = 0; void setPrefetchZoomDelta(optional delta) noexcept; optional getPrefetchZoomDelta() const noexcept; void setMinimumTileUpdateInterval(Duration interval) { minimumTileUpdateInterval = interval; } Duration getMinimumTileUpdateInterval() const { return minimumTileUpdateInterval; } void setMaxOverscaleFactorForParentTiles(optional overscaleFactor) noexcept; optional getMaxOverscaleFactorForParentTiles() const noexcept; bool isVolatile() const { return volatileFlag; } void setVolatile(bool set) { volatileFlag = set; } const SourceType type; const std::string id; protected: optional prefetchZoomDelta; optional maxOverscaleFactor; Duration minimumTileUpdateInterval{Duration::zero()}; bool volatileFlag = false; Impl(SourceType, std::string); Impl(const Impl&) = default; }; } // namespace style } // namespace mbgl