[core] Introduce the ResourceTransform
Wrapper for transforming URLs on the OnlineFileSource.
This commit is contained in:
@@ -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
|
||||
|
||||
26
include/mbgl/storage/resource_transform.hpp
Normal file
26
include/mbgl/storage/resource_transform.hpp
Normal 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
|
||||
13
src/mbgl/storage/resource_transform.cpp
Normal file
13
src/mbgl/storage/resource_transform.cpp
Normal 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
|
||||
Reference in New Issue
Block a user