1 #pragma once
2 
3 #include <mbgl/actor/actor_ref.hpp>
4 #include <mbgl/storage/resource.hpp>
5 
6 #include <functional>
7 #include <string>
8 
9 namespace mbgl {
10 
11 class Mailbox;
12 
13 class ResourceTransform {
14 public:
15     using TransformCallback = std::function<std::string(Resource::Kind kind, const std::string&& url)>;
16     using FinishedCallback = std::function<void(const std::string&&)>;
17 
18     ResourceTransform(ActorRef<ResourceTransform>, TransformCallback&&);
19 
20     void transform(Resource::Kind, const std::string&& url, FinishedCallback&&);
21 
22 private:
23     TransformCallback transformCallback;
24 };
25 
26 } // namespace mbgl
27