[core] Simplify asset:// implementation

* Move asset:// URL handling to DefaultFileSource.
* AssetFileSource implements FileSource interface and follows familiar implementation patterns.
* Move default implementation to platform/default, zip implementation to platform/android.
* Don't bother with modified / expires / etag -- assets are not cached so it doesn't matter.
* Don't bother with interleaving individual IO calls on the implementation thread. That adds a lot of complexity for very little benefit.
This commit is contained in:
John Firebaugh
2016-01-11 12:52:41 -08:00
parent 2126e34e52
commit 86c8446d3a
22 changed files with 287 additions and 731 deletions

View File

@@ -4,7 +4,7 @@
#include <mbgl/map/map.hpp>
#include <mbgl/platform/default/headless_view.hpp>
#include <mbgl/platform/default/headless_display.hpp>
#include <mbgl/storage/online_file_source.hpp>
#include <mbgl/storage/default_file_source.hpp>
#include <mbgl/util/image.hpp>
#include <mbgl/util/io.hpp>
@@ -18,9 +18,9 @@ TEST(API, RepeatedRender) {
auto display = std::make_shared<mbgl::HeadlessDisplay>();
HeadlessView view(display, 1, 256, 512);
#ifdef MBGL_ASSET_ZIP
OnlineFileSource fileSource(nullptr, "test/fixtures/api/assets.zip");
DefaultFileSource fileSource(":memory", "test/fixtures/api/assets.zip");
#else
OnlineFileSource fileSource(nullptr);
DefaultFileSource fileSource;
#endif
Log::setObserver(std::make_unique<FixtureLogObserver>());