1 #pragma once 2 3 #include <mbgl/actor/actor_ref.hpp> 4 #include <mbgl/storage/file_source.hpp> 5 #include <mbgl/util/async_request.hpp> 6 7 #include <memory> 8 #include <functional> 9 10 namespace mbgl { 11 12 class Mailbox; 13 14 class FileSourceRequest : public AsyncRequest { 15 public: 16 FileSourceRequest(FileSource::Callback&& callback); 17 ~FileSourceRequest() final; 18 19 void onCancel(std::function<void()>&& callback); 20 void setResponse(const Response& res); 21 22 ActorRef<FileSourceRequest> actor(); 23 24 private: 25 FileSource::Callback responseCallback = nullptr; 26 std::function<void()> cancelCallback = nullptr; 27 28 std::shared_ptr<Mailbox> mailbox; 29 }; 30 31 } // namespace mbgl 32