summaryrefslogtreecommitdiff
path: root/src/mbgl/style/sources
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/sources')
-rw-r--r--src/mbgl/style/sources/custom_vector_source.cpp18
-rw-r--r--src/mbgl/style/sources/custom_vector_source_impl.cpp32
-rw-r--r--src/mbgl/style/sources/custom_vector_source_impl.hpp27
3 files changed, 77 insertions, 0 deletions
diff --git a/src/mbgl/style/sources/custom_vector_source.cpp b/src/mbgl/style/sources/custom_vector_source.cpp
new file mode 100644
index 0000000000..e0bbd85af7
--- /dev/null
+++ b/src/mbgl/style/sources/custom_vector_source.cpp
@@ -0,0 +1,18 @@
+#include <mbgl/style/sources/custom_vector_source.hpp>
+#include <mbgl/style/sources/custom_vector_source_impl.hpp>
+
+namespace mbgl {
+namespace style {
+
+CustomVectorSource::CustomVectorSource(std::string id,
+ const GeoJSONOptions options,
+ FetchTileFunction fetchTileFn)
+ : Source(makeMutable<CustomVectorSource::Impl>(std::move(id), options, fetchTileFn)) {
+}
+
+void CustomVectorSource::loadDescription(FileSource&) {
+ loaded = true;
+}
+
+} // namespace style
+} // namespace mbgl
diff --git a/src/mbgl/style/sources/custom_vector_source_impl.cpp b/src/mbgl/style/sources/custom_vector_source_impl.cpp
new file mode 100644
index 0000000000..1b5ee4e5d1
--- /dev/null
+++ b/src/mbgl/style/sources/custom_vector_source_impl.cpp
@@ -0,0 +1,32 @@
+#include <mbgl/style/sources/custom_vector_source_impl.hpp>
+
+#include <mbgl/style/source_observer.hpp>
+#include <mbgl/tile/geojson_tile.hpp>
+#include <mbgl/tile/vector_tile.hpp>
+#include <mbgl/util/tile_cover.hpp>
+
+namespace mbgl {
+namespace style {
+
+CustomVectorSource::Impl::Impl(std::string id_,
+ const GeoJSONOptions options_,
+ FetchTileFunction fetchTileFn_)
+ : Source::Impl(SourceType::CustomVector, std::move(id_)),
+ options(options_),
+ fetchTileFn(fetchTileFn_) {
+}
+
+optional<std::string> CustomVectorSource::Impl::getAttribution() const {
+ return {};
+}
+
+GeoJSONOptions CustomVectorSource::Impl::getOptions() const {
+ return options;
+}
+
+FetchTileFunction CustomVectorSource::Impl::getFetchTileFunction() const {
+ return fetchTileFn;
+}
+
+} // namespace style
+} // namespace mbgl
diff --git a/src/mbgl/style/sources/custom_vector_source_impl.hpp b/src/mbgl/style/sources/custom_vector_source_impl.hpp
new file mode 100644
index 0000000000..aa07bc800d
--- /dev/null
+++ b/src/mbgl/style/sources/custom_vector_source_impl.hpp
@@ -0,0 +1,27 @@
+#pragma once
+
+#include <mbgl/style/source_impl.hpp>
+#include <mbgl/style/sources/custom_vector_source.hpp>
+#include <mbgl/tile/tile_id.hpp>
+
+namespace mbgl {
+namespace style {
+
+class CustomVectorSource::Impl : public Source::Impl {
+public:
+ Impl(std::string id,
+ GeoJSONOptions options,
+ FetchTileFunction fetchTileFn);
+
+ optional<std::string> getAttribution() const final;
+
+ GeoJSONOptions getOptions() const;
+ FetchTileFunction getFetchTileFunction() const;
+
+private:
+ GeoJSONOptions options;
+ FetchTileFunction fetchTileFn;
+};
+
+} // namespace style
+} // namespace mbgl