1 #pragma once 2 3 #include <mbgl/style/source.hpp> 4 #include <mbgl/util/noncopyable.hpp> 5 6 #include <string> 7 8 namespace mbgl { 9 10 class RenderSource; 11 12 namespace style { 13 14 class SourceObserver; 15 16 class Source::Impl { 17 public: 18 virtual ~Impl() = default; 19 20 Impl& operator=(const Impl&) = delete; 21 22 virtual optional<std::string> getAttribution() const = 0; 23 24 const SourceType type; 25 const std::string id; 26 27 protected: 28 Impl(SourceType, std::string); 29 Impl(const Impl&) = default; 30 }; 31 32 } // namespace style 33 } // namespace mbgl 34