summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-05-24 17:43:56 +0300
committerIvo van Dongen <info@ivovandongen.nl>2017-05-30 13:42:46 +0300
commitd4d4f82060fffded3672125c5cceb2caf3eec4f9 (patch)
tree7fd8eddbf16631f849894c0ad42f2e53b9683730
parent443ffcbeae588a985c0716c7b3de317b03c8b9cb (diff)
downloadqtlocation-mapboxgl-d4d4f82060fffded3672125c5cceb2caf3eec4f9.tar.gz
[core] require scheduler in default file source
-rw-r--r--include/mbgl/storage/default_file_source.hpp8
-rw-r--r--platform/default/default_file_source.cpp8
-rw-r--r--test/api/custom_layer.test.cpp2
-rw-r--r--test/api/render_missing.test.cpp2
-rw-r--r--test/api/repeated_render.test.cpp2
-rw-r--r--test/map/map.test.cpp6
-rw-r--r--test/storage/default_file_source.test.cpp46
7 files changed, 48 insertions, 26 deletions
diff --git a/include/mbgl/storage/default_file_source.hpp b/include/mbgl/storage/default_file_source.hpp
index f929334f28..01b8a3698d 100644
--- a/include/mbgl/storage/default_file_source.hpp
+++ b/include/mbgl/storage/default_file_source.hpp
@@ -9,6 +9,8 @@
namespace mbgl {
+class Scheduler;
+
namespace util {
template <typename T> class Thread;
} // namespace util
@@ -22,10 +24,12 @@ public:
* regions, we want the database to remain fairly small (order tens or low hundreds
* of megabytes).
*/
- DefaultFileSource(const std::string& cachePath,
+ DefaultFileSource(Scheduler&,
+ const std::string& cachePath,
const std::string& assetRoot,
uint64_t maximumCacheSize = util::DEFAULT_MAX_CACHE_SIZE);
- DefaultFileSource(const std::string& cachePath,
+ DefaultFileSource(Scheduler&,
+ const std::string& cachePath,
std::unique_ptr<FileSource>&& assetFileSource,
uint64_t maximumCacheSize = util::DEFAULT_MAX_CACHE_SIZE);
~DefaultFileSource() override;
diff --git a/platform/default/default_file_source.cpp b/platform/default/default_file_source.cpp
index adb3f6a83d..7d0a393ce5 100644
--- a/platform/default/default_file_source.cpp
+++ b/platform/default/default_file_source.cpp
@@ -179,13 +179,15 @@ private:
std::unordered_map<int64_t, std::unique_ptr<OfflineDownload>> downloads;
};
-DefaultFileSource::DefaultFileSource(const std::string& cachePath,
+DefaultFileSource::DefaultFileSource(Scheduler& scheduler,
+ const std::string& cachePath,
const std::string& assetRoot,
uint64_t maximumCacheSize)
- : DefaultFileSource(cachePath, std::make_unique<AssetFileSource>(assetRoot), maximumCacheSize) {
+ : DefaultFileSource(scheduler, cachePath, std::make_unique<AssetFileSource>(assetRoot), maximumCacheSize) {
}
-DefaultFileSource::DefaultFileSource(const std::string& cachePath,
+DefaultFileSource::DefaultFileSource(Scheduler&,
+ const std::string& cachePath,
std::unique_ptr<FileSource>&& assetFileSource_,
uint64_t maximumCacheSize)
: assetFileSource(std::move(assetFileSource_))
diff --git a/test/api/custom_layer.test.cpp b/test/api/custom_layer.test.cpp
index 5a30220cd7..9d134f5982 100644
--- a/test/api/custom_layer.test.cpp
+++ b/test/api/custom_layer.test.cpp
@@ -89,8 +89,8 @@ TEST(CustomLayer, Basic) {
HeadlessBackend backend { test::sharedDisplay() };
BackendScope scope { backend };
OffscreenView view { backend.getContext() };
- DefaultFileSource fileSource(":memory:", "test/fixtures/api/assets");
ThreadPool threadPool(4);
+ DefaultFileSource fileSource(threadPool, ":memory:", "test/fixtures/api/assets");
Map map(backend, view.getSize(), 1, fileSource, threadPool, MapMode::Still);
map.setStyleJSON(util::read_file("test/fixtures/api/water.json"));
diff --git a/test/api/render_missing.test.cpp b/test/api/render_missing.test.cpp
index 6e99501708..7ddb1059a4 100644
--- a/test/api/render_missing.test.cpp
+++ b/test/api/render_missing.test.cpp
@@ -29,8 +29,8 @@ TEST(API, TEST_REQUIRES_SERVER(RenderMissingTile)) {
HeadlessBackend backend { test::sharedDisplay() };
BackendScope scope { backend };
OffscreenView view { backend.getContext(), { 256, 512 } };
- DefaultFileSource fileSource(":memory:", "test/fixtures/api/assets");
ThreadPool threadPool(4);
+ DefaultFileSource fileSource(threadPool, ":memory:", "test/fixtures/api/assets");
Log::setObserver(std::make_unique<FixtureLogObserver>());
diff --git a/test/api/repeated_render.test.cpp b/test/api/repeated_render.test.cpp
index 0b9726d3fa..0aa552328a 100644
--- a/test/api/repeated_render.test.cpp
+++ b/test/api/repeated_render.test.cpp
@@ -25,8 +25,8 @@ TEST(API, RepeatedRender) {
HeadlessBackend backend { test::sharedDisplay() };
BackendScope scope { backend };
OffscreenView view { backend.getContext(), { 256, 512 } };
- DefaultFileSource fileSource(":memory:", "test/fixtures/api/assets");
ThreadPool threadPool(4);
+ DefaultFileSource fileSource(threadPool, ":memory:", "test/fixtures/api/assets");
Log::setObserver(std::make_unique<FixtureLogObserver>());
diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp
index be78c8714b..518964c10c 100644
--- a/test/map/map.test.cpp
+++ b/test/map/map.test.cpp
@@ -104,7 +104,7 @@ TEST(Map, CameraToLatLngBounds) {
TEST(Map, Offline) {
MapTest test;
- DefaultFileSource fileSource(":memory:", ".");
+ DefaultFileSource fileSource(test.threadPool, ":memory:", ".");
auto expiredItem = [] (const std::string& path) {
Response response;
@@ -356,7 +356,7 @@ TEST(Map, WithoutVAOExtension) {
test.backend.getContext().disableVAOExtension = true;
- DefaultFileSource fileSource(":memory:", "test/fixtures/api/assets");
+ DefaultFileSource fileSource(test.threadPool, ":memory:", "test/fixtures/api/assets");
Map map(test.backend, test.view.getSize(), 1, fileSource, test.threadPool, MapMode::Still);
map.setStyleJSON(util::read_file("test/fixtures/api/water.json"));
@@ -550,7 +550,7 @@ TEST(Map, TEST_DISABLED_ON_CI(ContinuousRendering)) {
BackendScope scope { backend };
OffscreenView view { backend.getContext() };
ThreadPool threadPool { 4 };
- DefaultFileSource fileSource(":memory:", "test/fixtures/api/assets");
+ DefaultFileSource fileSource(threadPool, ":memory:", "test/fixtures/api/assets");
Map map(backend, view.getSize(), 1, fileSource, threadPool, MapMode::Continuous);
using namespace std::chrono_literals;
diff --git a/test/storage/default_file_source.test.cpp b/test/storage/default_file_source.test.cpp
index 03f1076559..171f32f14b 100644
--- a/test/storage/default_file_source.test.cpp
+++ b/test/storage/default_file_source.test.cpp
@@ -1,12 +1,14 @@
#include <mbgl/test/util.hpp>
#include <mbgl/storage/default_file_source.hpp>
#include <mbgl/util/run_loop.hpp>
+#include <mbgl/util/default_thread_pool.hpp>
using namespace mbgl;
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(CacheResponse)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
const Resource resource { Resource::Unknown, "http://127.0.0.1:3000/cache" };
Response response;
@@ -44,7 +46,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(CacheResponse)) {
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(CacheRevalidateSame)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
const Resource revalidateSame { Resource::Unknown, "http://127.0.0.1:3000/revalidate-same" };
std::unique_ptr<AsyncRequest> req1;
@@ -88,7 +91,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(CacheRevalidateSame)) {
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(CacheRevalidateModified)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
const Resource revalidateModified{ Resource::Unknown,
"http://127.0.0.1:3000/revalidate-modified" };
@@ -132,7 +136,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(CacheRevalidateModified)) {
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(CacheRevalidateEtag)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
const Resource revalidateEtag { Resource::Unknown, "http://127.0.0.1:3000/revalidate-etag" };
std::unique_ptr<AsyncRequest> req1;
@@ -187,7 +192,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(CacheRevalidateEtag)) {
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(HTTPIssue1369)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
const Resource resource { Resource::Unknown, "http://127.0.0.1:3000/test" };
@@ -211,7 +217,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(HTTPIssue1369)) {
TEST(DefaultFileSource, OptionalNonExpired) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
const Resource optionalResource { Resource::Unknown, "http://127.0.0.1:3000/test", {}, Resource::Optional };
@@ -240,7 +247,8 @@ TEST(DefaultFileSource, OptionalNonExpired) {
TEST(DefaultFileSource, OptionalExpired) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
const Resource optionalResource { Resource::Unknown, "http://127.0.0.1:3000/test", {}, Resource::Optional };
@@ -269,7 +277,8 @@ TEST(DefaultFileSource, OptionalExpired) {
TEST(DefaultFileSource, GetBaseURLAndAccessTokenWhilePaused) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
fs.pause();
@@ -285,7 +294,8 @@ TEST(DefaultFileSource, GetBaseURLAndAccessTokenWhilePaused) {
TEST(DefaultFileSource, OptionalNotFound) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
const Resource optionalResource { Resource::Unknown, "http://127.0.0.1:3000/test", {}, Resource::Optional };
@@ -311,7 +321,8 @@ TEST(DefaultFileSource, OptionalNotFound) {
// from cache like a regular request
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheRefreshEtagNotModified)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
Resource resource { Resource::Unknown, "http://127.0.0.1:3000/revalidate-same" };
resource.priorEtag.emplace("snowfall");
@@ -345,7 +356,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheRefreshEtagNotModified)) {
// from cache like a regular request
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheRefreshEtagModified)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
Resource resource { Resource::Unknown, "http://127.0.0.1:3000/revalidate-same" };
resource.priorEtag.emplace("sunshine");
@@ -379,7 +391,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheRefreshEtagModified)) {
// from cache like a regular request.
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheFull)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
Resource resource { Resource::Unknown, "http://127.0.0.1:3000/revalidate-same" };
// Setting any prior field results in skipping the cache.
@@ -414,7 +427,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheFull)) {
// from cache like a regular request
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheRefreshModifiedNotModified)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
Resource resource { Resource::Unknown, "http://127.0.0.1:3000/revalidate-modified" };
resource.priorModified.emplace(Seconds(1420070400)); // January 1, 2015
@@ -448,7 +462,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheRefreshModifiedNotModified))
// from cache like a regular request
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheRefreshModifiedModified)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
Resource resource { Resource::Unknown, "http://127.0.0.1:3000/revalidate-modified" };
resource.priorModified.emplace(Seconds(1417392000)); // December 1, 2014
@@ -479,7 +494,8 @@ TEST(DefaultFileSource, TEST_REQUIRES_SERVER(NoCacheRefreshModifiedModified)) {
TEST(DefaultFileSource, TEST_REQUIRES_SERVER(SetResourceTransform)) {
util::RunLoop loop;
- DefaultFileSource fs(":memory:", ".");
+ ThreadPool threadPool {4};
+ DefaultFileSource fs(threadPool, ":memory:", ".");
// Translates the URL "localhost://test to http://127.0.0.1:3000/test
fs.setResourceTransform([](Resource::Kind, std::string&& url) -> std::string {