summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
Diffstat (limited to 'platform')
-rw-r--r--platform/default/filesource-files.json1
-rw-r--r--platform/default/include/mbgl/gl/headless_frontend.hpp6
-rw-r--r--platform/default/include/mbgl/map/map_snapshotter.hpp3
-rw-r--r--platform/default/src/mbgl/gl/headless_frontend.cpp8
-rw-r--r--platform/default/src/mbgl/map/map_snapshotter.cpp15
-rw-r--r--platform/default/src/mbgl/storage/file_source_options.cpp55
-rw-r--r--platform/glfw/main.cpp34
7 files changed, 89 insertions, 33 deletions
diff --git a/platform/default/filesource-files.json b/platform/default/filesource-files.json
index f61aa6a335..c256cec1be 100644
--- a/platform/default/filesource-files.json
+++ b/platform/default/filesource-files.json
@@ -3,6 +3,7 @@
"sources": [
"platform/default/src/mbgl/storage/asset_file_source.cpp",
"platform/default/src/mbgl/storage/default_file_source.cpp",
+ "platform/default/src/mbgl/storage/file_source_options.cpp",
"platform/default/src/mbgl/storage/file_source_request.cpp",
"platform/default/src/mbgl/storage/local_file_request.cpp",
"platform/default/src/mbgl/storage/local_file_source.cpp",
diff --git a/platform/default/include/mbgl/gl/headless_frontend.hpp b/platform/default/include/mbgl/gl/headless_frontend.hpp
index d32c2e7768..a30519ad4e 100644
--- a/platform/default/include/mbgl/gl/headless_frontend.hpp
+++ b/platform/default/include/mbgl/gl/headless_frontend.hpp
@@ -11,16 +11,16 @@
namespace mbgl {
-class FileSource;
class Renderer;
class RendererBackend;
class Map;
class TransformState;
+class FileSourceOptions;
class HeadlessFrontend : public RendererFrontend {
public:
- HeadlessFrontend(float pixelRatio_, FileSource&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {});
- HeadlessFrontend(Size, float pixelRatio_, FileSource&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {});
+ HeadlessFrontend(float pixelRatio_, const FileSourceOptions&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {});
+ HeadlessFrontend(Size, float pixelRatio_, const FileSourceOptions&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {});
~HeadlessFrontend() override;
void reset() override;
diff --git a/platform/default/include/mbgl/map/map_snapshotter.hpp b/platform/default/include/mbgl/map/map_snapshotter.hpp
index 8c4b3e023e..e7c6a94883 100644
--- a/platform/default/include/mbgl/map/map_snapshotter.hpp
+++ b/platform/default/include/mbgl/map/map_snapshotter.hpp
@@ -25,8 +25,7 @@ class Style;
class MapSnapshotter {
public:
- MapSnapshotter(FileSource* fileSource,
- const std::pair<bool, std::string> style,
+ MapSnapshotter(const std::pair<bool, std::string> style,
const Size&,
const float pixelRatio,
const optional<CameraOptions> cameraOptions,
diff --git a/platform/default/src/mbgl/gl/headless_frontend.cpp b/platform/default/src/mbgl/gl/headless_frontend.cpp
index 71cd656e59..c1f8205fdb 100644
--- a/platform/default/src/mbgl/gl/headless_frontend.cpp
+++ b/platform/default/src/mbgl/gl/headless_frontend.cpp
@@ -8,11 +8,11 @@
namespace mbgl {
-HeadlessFrontend::HeadlessFrontend(float pixelRatio_, FileSource& fileSource, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily)
- : HeadlessFrontend({ 256, 256 }, pixelRatio_, fileSource, programCacheDir, mode, localFontFamily) {
+HeadlessFrontend::HeadlessFrontend(float pixelRatio_, const FileSourceOptions& fileSourceOptions, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily)
+ : HeadlessFrontend({ 256, 256 }, pixelRatio_, fileSourceOptions, programCacheDir, mode, localFontFamily) {
}
-HeadlessFrontend::HeadlessFrontend(Size size_, float pixelRatio_, FileSource& fileSource, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily)
+HeadlessFrontend::HeadlessFrontend(Size size_, float pixelRatio_, const FileSourceOptions& fileSourceOptions, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily)
: size(size_),
pixelRatio(pixelRatio_),
backend({ static_cast<uint32_t>(size.width * pixelRatio),
@@ -23,7 +23,7 @@ HeadlessFrontend::HeadlessFrontend(Size size_, float pixelRatio_, FileSource& fi
renderer->render(*updateParameters);
}
}),
- renderer(std::make_unique<Renderer>(backend, pixelRatio, fileSource, mode, programCacheDir, localFontFamily)) {
+ renderer(std::make_unique<Renderer>(backend, pixelRatio, fileSourceOptions, mode, programCacheDir, localFontFamily)) {
}
HeadlessFrontend::~HeadlessFrontend() = default;
diff --git a/platform/default/src/mbgl/map/map_snapshotter.cpp b/platform/default/src/mbgl/map/map_snapshotter.cpp
index 9532b01b7e..4d3dc75724 100644
--- a/platform/default/src/mbgl/map/map_snapshotter.cpp
+++ b/platform/default/src/mbgl/map/map_snapshotter.cpp
@@ -5,7 +5,6 @@
#include <mbgl/map/map.hpp>
#include <mbgl/map/map_options.hpp>
#include <mbgl/map/transform_state.hpp>
-#include <mbgl/storage/file_source.hpp>
#include <mbgl/style/style.hpp>
#include <mbgl/util/event.hpp>
#include <mbgl/map/transform.hpp>
@@ -14,8 +13,7 @@ namespace mbgl {
class MapSnapshotter::Impl {
public:
- Impl(FileSource*,
- const std::pair<bool, std::string> style,
+ Impl(const std::pair<bool, std::string> style,
const Size&,
const float pixelRatio,
const optional<CameraOptions> cameraOptions,
@@ -45,7 +43,7 @@ private:
Map map;
};
-MapSnapshotter::Impl::Impl(FileSource* fileSource,
+MapSnapshotter::Impl::Impl(
const std::pair<bool, std::string> style,
const Size& size,
const float pixelRatio,
@@ -53,8 +51,8 @@ MapSnapshotter::Impl::Impl(FileSource* fileSource,
const optional<LatLngBounds> region,
const optional<std::string> programCacheDir,
const optional<std::string> localFontFamily)
- , frontend(size, pixelRatio, programCacheDir, GLContextMode::Unique, localFontFamily)
- , map(frontend, MapObserver::nullObserver(), size, pixelRatio, *fileSource, MapOptions().withMapMode(MapMode::Static)) {
+ : frontend(size, pixelRatio, FileSourceOptions(), programCacheDir, GLContextMode::Unique, localFontFamily)
+ , map(frontend, MapObserver::nullObserver(), size, pixelRatio, MapOptions().withMapMode(MapMode::Static), FileSourceOptions()) {
if (style.first) {
map.getStyle().loadJSON(style.second);
@@ -160,15 +158,14 @@ LatLngBounds MapSnapshotter::Impl::getRegion() const {
return map.latLngBoundsForCamera(getCameraOptions());
}
-MapSnapshotter::MapSnapshotter(FileSource* fileSource,
- const std::pair<bool, std::string> style,
+MapSnapshotter::MapSnapshotter(const std::pair<bool, std::string> style,
const Size& size,
const float pixelRatio,
const optional<CameraOptions> cameraOptions,
const optional<LatLngBounds> region,
const optional<std::string> programCacheDir,
const optional<std::string> localFontFamily)
- : impl(std::make_unique<util::Thread<MapSnapshotter::Impl>>("Map Snapshotter", fileSource, style, size, pixelRatio, cameraOptions, region, programCacheDir, localFontFamily)) {
+ : impl(std::make_unique<util::Thread<MapSnapshotter::Impl>>("Map Snapshotter", style, size, pixelRatio, cameraOptions, region, programCacheDir, localFontFamily)) {
}
MapSnapshotter::~MapSnapshotter() = default;
diff --git a/platform/default/src/mbgl/storage/file_source_options.cpp b/platform/default/src/mbgl/storage/file_source_options.cpp
new file mode 100644
index 0000000000..782c90f768
--- /dev/null
+++ b/platform/default/src/mbgl/storage/file_source_options.cpp
@@ -0,0 +1,55 @@
+#include <mbgl/storage/file_source_options.hpp>
+#include <mbgl/util/constants.hpp>
+
+#include <cassert>
+
+namespace mbgl {
+
+class FileSourceOptions::Impl {
+public:
+ std::string accessToken;
+ std::string cachePath { ":memory:" };
+ std::string assetRoot { "." };
+ uint64_t maximumSize{mbgl::util::DEFAULT_MAX_CACHE_SIZE};
+};
+
+FileSourceOptions::FileSourceOptions() : impl_(std::make_shared<FileSourceOptions::Impl>()) {}
+FileSourceOptions::~FileSourceOptions() = default;
+
+FileSourceOptions& FileSourceOptions::withAccessToken(std::string accessToken) {
+ impl_->accessToken = std::move(accessToken);
+ return *this;
+}
+
+const std::string& FileSourceOptions::accessToken() const {
+ return impl_->accessToken;
+}
+
+FileSourceOptions& FileSourceOptions::withCachePath(std::string path) {
+ impl_->cachePath = std::move(path);
+ return *this;
+}
+
+const std::string& FileSourceOptions::cachePath() const {
+ return impl_->cachePath;
+}
+
+FileSourceOptions& FileSourceOptions::withAssetRoot(std::string path) {
+ impl_->assetRoot = std::move(path);
+ return *this;
+}
+
+const std::string& FileSourceOptions::assetRoot() const {
+ return impl_->assetRoot;
+}
+
+FileSourceOptions& FileSourceOptions::withMaximumCacheSize(uint64_t size) {
+ impl_->maximumSize = size;
+ return *this;
+}
+
+uint64_t FileSourceOptions::maximumCacheSize() const {
+ return impl_->maximumSize;
+}
+
+} // namespace mbgl \ No newline at end of file
diff --git a/platform/glfw/main.cpp b/platform/glfw/main.cpp
index b66acf8088..4ce3706dea 100644
--- a/platform/glfw/main.cpp
+++ b/platform/glfw/main.cpp
@@ -8,6 +8,7 @@
#include <mbgl/storage/default_file_source.hpp>
#include <mbgl/style/style.hpp>
#include <mbgl/renderer/renderer.hpp>
+#include <mbgl/platform/factory.hpp>
#include <args/args.hxx>
@@ -92,22 +93,25 @@ int main(int argc, char *argv[]) {
GLFWView backend(fullscreen, benchmark);
view = &backend;
- mbgl::DefaultFileSource fileSource(cacheDB, ".");
- if (!settings.online) {
- fileSource.setOnlineStatus(false);
- mbgl::Log::Warning(mbgl::Event::Setup, "Application is offline. Press `O` to toggle online status.");
- }
-
// Set access token if present
const char *token = getenv("MAPBOX_ACCESS_TOKEN");
if (token == nullptr) {
mbgl::Log::Warning(mbgl::Event::Setup, "no access token set. mapbox.com tiles won't work.");
- } else {
- fileSource.setAccessToken(std::string(token));
}
- GLFWRendererFrontend rendererFrontend { std::make_unique<mbgl::Renderer>(backend, view->getPixelRatio(), fileSource), backend };
- mbgl::Map map(rendererFrontend, backend, view->getSize(), view->getPixelRatio(), fileSource, mbgl::MapOptions());
+ auto fileSourceOptions = mbgl::FileSourceOptions().withCachePath(cacheDB).withAccessToken(std::string(token));
+
+ GLFWRendererFrontend rendererFrontend { std::make_unique<mbgl::Renderer>(backend, view->getPixelRatio(), fileSourceOptions), backend };
+ mbgl::Map map(rendererFrontend, backend, view->getSize(), view->getPixelRatio(),
+ mbgl::MapOptions(), fileSourceOptions);
+
+ auto fileSource = std::static_pointer_cast<mbgl::DefaultFileSource>(mbgl::platform::Factory::sharedFileSource(fileSourceOptions));
+ printf("accessToken: %s\n", fileSource->getAccessToken().c_str());
+
+ if (!settings.online) {
+ fileSource->setOnlineStatus(false);
+ mbgl::Log::Warning(mbgl::Event::Setup, "Application is offline. Press `O` to toggle online status.");
+ }
backend.setMap(&map);
@@ -122,9 +126,9 @@ int main(int argc, char *argv[]) {
.withPitch(settings.pitch));
map.setDebug(mbgl::MapDebugOptions(settings.debug));
- view->setOnlineStatusCallback([&settings, &fileSource]() {
+ view->setOnlineStatusCallback([&settings, fileSource]() {
settings.online = !settings.online;
- fileSource.setOnlineStatus(settings.online);
+ fileSource->setOnlineStatus(settings.online);
mbgl::Log::Info(mbgl::Event::Setup, "Application is %s. Press `O` to toggle online status.", settings.online ? "online" : "offline");
});
@@ -142,13 +146,13 @@ int main(int argc, char *argv[]) {
mbgl::Log::Info(mbgl::Event::Setup, "Changed style to: %s", newStyle.name);
});
- view->setPauseResumeCallback([&fileSource] () {
+ view->setPauseResumeCallback([fileSource] () {
static bool isPaused = false;
if (isPaused) {
- fileSource.resume();
+ fileSource->resume();
} else {
- fileSource.pause();
+ fileSource->pause();
}
isPaused = !isPaused;