[core] Introduce the ResourceTransform

Wrapper for transforming URLs on the OnlineFileSource.
This commit is contained in:
Thiago Marcos P. Santos
2017-06-21 17:32:41 +03:00
parent 54c3ccc37d
commit 6beccef517
3 changed files with 41 additions and 0 deletions

View File

@@ -310,6 +310,7 @@ set(MBGL_CORE_FILES
include/mbgl/storage/offline.hpp
include/mbgl/storage/online_file_source.hpp
include/mbgl/storage/resource.hpp
include/mbgl/storage/resource_transform.hpp
include/mbgl/storage/response.hpp
src/mbgl/storage/asset_file_source.hpp
src/mbgl/storage/file_source_request.cpp
@@ -318,6 +319,7 @@ set(MBGL_CORE_FILES
src/mbgl/storage/local_file_source.hpp
src/mbgl/storage/network_status.cpp
src/mbgl/storage/resource.cpp
src/mbgl/storage/resource_transform.cpp
src/mbgl/storage/response.cpp
# style

View File

@@ -0,0 +1,26 @@
#pragma once
#include <mbgl/actor/actor_ref.hpp>
#include <mbgl/storage/resource.hpp>
#include <functional>
#include <string>
namespace mbgl {
class Mailbox;
class ResourceTransform {
public:
using TransformCallback = std::function<std::string(Resource::Kind kind, const std::string&& url)>;
using FinishedCallback = std::function<void(const std::string&&)>;
ResourceTransform(ActorRef<ResourceTransform>, TransformCallback&&);
void transform(Resource::Kind, const std::string&& url, FinishedCallback&&);
private:
TransformCallback transformCallback;
};
} // namespace mbgl

View File

@@ -0,0 +1,13 @@
#include <mbgl/storage/resource_transform.hpp>
namespace mbgl {
ResourceTransform::ResourceTransform(ActorRef<ResourceTransform>, TransformCallback&& callback)
: transformCallback(std::move(callback)) {
}
void ResourceTransform::transform(Resource::Kind kind, const std::string&& url, FinishedCallback&& finished) {
finished(transformCallback(kind, std::move(url)));
}
} // namespace mbgl