1 #pragma once
2 
3 #include <mbgl/style/source_impl.hpp>
4 #include <mbgl/style/sources/custom_geometry_source.hpp>
5 #include <mbgl/style/custom_tile_loader.hpp>
6 #include <mbgl/actor/actor_ref.hpp>
7 
8 namespace mbgl {
9 namespace style {
10 
11 class CustomGeometrySource::Impl : public Source::Impl {
12 public:
13     Impl(std::string id, CustomGeometrySource::Options options);
14     Impl(const Impl&, ActorRef<CustomTileLoader>);
15 
16     optional<std::string> getAttribution() const final;
17 
18     CustomGeometrySource::TileOptions getTileOptions() const;
19     Range<uint8_t> getZoomRange() const;
20     optional<ActorRef<CustomTileLoader>> getTileLoader() const;
21 
22 private:
23     CustomGeometrySource::TileOptions tileOptions;
24     Range<uint8_t> zoomRange;
25     optional<ActorRef<CustomTileLoader>> loaderRef;
26 };
27 
28 } // namespace style
29 } // namespace mbgl
30