Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
Revert "[core] Modularize FileSource codebase (#15768)"
Browse files Browse the repository at this point in the history
This reverts commit 879c44f.
  • Loading branch information
alexshalamov committed Jan 31, 2020
1 parent d7c8104 commit 6479d0d
Show file tree
Hide file tree
Showing 82 changed files with 1,329 additions and 1,840 deletions.
8 changes: 0 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,14 +133,6 @@

Introduces public [mblg::Renderer::render](https://github.com/mapbox/mapbox-gl-native/pull/16127/files#diff-5a977e0401792825d7fcf522d48df11fR34) API break.

- [core] Refactor DefaultFileSource codebase ([#15768](https://github.com/mapbox/mapbox-gl-native/pull/15768))
- Adds `FileSourceManager` interface that provides access to `FileSource` instances and means of registering / unregistering `FileSource` factories
- Splits `DefaultFileSource` into smaller parts
- Adds `DatabaseFileSource` interface and it's default implementation
- Removes inter-dependencies between concrete `FileSource` classes
- All sources operate on dedicated thread, except `MainResourceLoader` that acts as a dispatcher and works on thread that requested it.
- Removes `ResourceOptions::withCacheOnlyRequestsSupport` method

- [core] Remove Map::cycleDebugOptions ([#16005](https://github.com/mapbox/mapbox-gl-native/pull/16005))

This function was mostly used by the Android API, which is no longer necessary.
11 changes: 5 additions & 6 deletions bin/cache.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#include <mbgl/storage/file_source_manager.hpp>
#include <mbgl/storage/default_file_source.hpp>
#include <mbgl/storage/resource.hpp>
#include <mbgl/storage/resource_options.hpp>
#include <mbgl/util/chrono.hpp>
#include <mbgl/util/run_loop.hpp>

Expand Down Expand Up @@ -90,9 +89,9 @@ int main(int argc, char* argv[]) {
}

mbgl::util::RunLoop loop;
auto dbfs = mbgl::FileSourceManager::get()->getFileSource(
mbgl::FileSourceType::Database, mbgl::ResourceOptions().withCachePath(args::get(cacheValue)));
dbfs->forward(resource, response, [&loop] { loop.stop(); });
loop.run();
mbgl::DefaultFileSource fileSource(args::get(cacheValue), ".");

fileSource.put(resource, response);

return 0;
}
70 changes: 34 additions & 36 deletions bin/offline.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
#include <mbgl/util/string.hpp>
#include <mbgl/util/geojson.hpp>

#include <mbgl/storage/database_file_source.hpp>
#include <mbgl/storage/file_source_manager.hpp>
#include <mbgl/storage/resource_options.hpp>
#include <mbgl/storage/default_file_source.hpp>

#include <args.hxx>

Expand Down Expand Up @@ -163,16 +161,17 @@ int main(int argc, char *argv[]) {


util::RunLoop loop;
std::shared_ptr<DatabaseFileSource> fileSource =
std::static_pointer_cast<DatabaseFileSource>(FileSourceManager::get()->getFileSource(
FileSourceType::Database,
ResourceOptions().withAccessToken(token).withBaseURL(apiBaseURL).withCachePath(output)));

DefaultFileSource fileSource(output, ".");
std::unique_ptr<OfflineRegion> region;

if (inputDb && mergePath) {
DatabaseFileSource inputSource(ResourceOptions().withCachePath(*inputDb));
fileSource.setAccessToken(token);
fileSource.setAPIBaseURL(apiBaseURL);

if (inputDb && mergePath) {
DefaultFileSource inputSource(*inputDb, ".");
inputSource.setAccessToken(token);
inputSource.setAPIBaseURL(apiBaseURL);

int retCode = 0;
std::cout << "Start Merge" << std::endl;
inputSource.mergeOfflineRegions(*mergePath, [&] (mbgl::expected<std::vector<OfflineRegion>, std::exception_ptr> result) {
Expand All @@ -194,15 +193,13 @@ int main(int argc, char *argv[]) {

class Observer : public OfflineRegionObserver {
public:
Observer(OfflineRegion& region_,
std::shared_ptr<DatabaseFileSource> fileSource_,
util::RunLoop& loop_,
mbgl::optional<std::string> mergePath_)
Observer(OfflineRegion& region_, DefaultFileSource& fileSource_, util::RunLoop& loop_, mbgl::optional<std::string> mergePath_)
: region(region_),
fileSource(std::move(fileSource_)),
fileSource(fileSource_),
loop(loop_),
mergePath(std::move(mergePath_)),
start(util::now()) {}
start(util::now()) {
}

void statusChanged(OfflineRegionStatus status) override {
if (status.downloadState == OfflineRegionDownloadState::Inactive) {
Expand All @@ -218,11 +215,14 @@ int main(int argc, char *argv[]) {
bytesPerSecond = util::toString(status.completedResourceSize / elapsedSeconds);
}

std::cout << status.completedResourceCount << " / " << status.requiredResourceCount << " resources | "
<< status.completedTileCount << " / " << status.requiredTileCount << " tiles"
<< (status.requiredResourceCountIsPrecise ? " | " : " (indeterminate); ")
std::cout << status.completedResourceCount << " / " << status.requiredResourceCount
<< " resources"
<< status.completedTileCount << " / " << status.requiredTileCount
<< "tiles"
<< (status.requiredResourceCountIsPrecise ? "; " : " (indeterminate); ")
<< status.completedResourceSize << " bytes downloaded"
<< " (" << bytesPerSecond << " bytes/sec)" << std::endl;
<< " (" << bytesPerSecond << " bytes/sec)"
<< std::endl;

if (status.complete()) {
std::cout << "Finished Download" << std::endl;
Expand All @@ -239,7 +239,7 @@ int main(int argc, char *argv[]) {
}

OfflineRegion& region;
std::shared_ptr<DatabaseFileSource> fileSource;
DefaultFileSource& fileSource;
util::RunLoop& loop;
mbgl::optional<std::string> mergePath;
Timestamp start;
Expand All @@ -248,26 +248,24 @@ int main(int argc, char *argv[]) {
static auto stop = [&] {
if (region) {
std::cout << "Stopping download... ";
fileSource->setOfflineRegionDownloadState(*region, OfflineRegionDownloadState::Inactive);
fileSource.setOfflineRegionDownloadState(*region, OfflineRegionDownloadState::Inactive);
}
};

std::signal(SIGINT, [] (int) { stop(); });

fileSource->createOfflineRegion(
definition, metadata, [&](mbgl::expected<OfflineRegion, std::exception_ptr> region_) {
if (!region_) {
std::cerr << "Error creating region: " << util::toString(region_.error()) << std::endl;
loop.stop();
exit(1);
} else {
assert(region_);
region = std::make_unique<OfflineRegion>(std::move(*region_));
fileSource->setOfflineRegionObserver(*region,
std::make_unique<Observer>(*region, fileSource, loop, mergePath));
fileSource->setOfflineRegionDownloadState(*region, OfflineRegionDownloadState::Active);
}
});
fileSource.createOfflineRegion(definition, metadata, [&] (mbgl::expected<OfflineRegion, std::exception_ptr> region_) {
if (!region_) {
std::cerr << "Error creating region: " << util::toString(region_.error()) << std::endl;
loop.stop();
exit(1);
} else {
assert(region_);
region = std::make_unique<OfflineRegion>(std::move(*region_));
fileSource.setOfflineRegionObserver(*region, std::make_unique<Observer>(*region, fileSource, loop, mergePath));
fileSource.setOfflineRegionDownloadState(*region, OfflineRegionDownloadState::Active);
}
});

loop.run();
return 0;
Expand Down
Loading

0 comments on commit 6479d0d

Please sign in to comment.