summaryrefslogtreecommitdiff
path: root/platform/default/mbgl/storage/file_source_request.hpp
blob: 6bd0d44df6cef392947b6be65ca5b1137c85bcf5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once

#include <mbgl/actor/actor_ref.hpp>
#include <mbgl/storage/file_source.hpp>
#include <mbgl/util/async_request.hpp>

#include <memory>
#include <functional>

namespace mbgl {

class Mailbox;

class FileSourceRequest : public AsyncRequest {
public:
    FileSourceRequest(FileSource::Callback&& callback);
    ~FileSourceRequest() final;

    void onCancel(std::function<void()>&& callback);
    void setResponse(const Response& res);

    ActorRef<FileSourceRequest> actor();

private:
    FileSource::Callback responseCallback = nullptr;
    std::function<void()> cancelCallback = nullptr;

    std::shared_ptr<Mailbox> mailbox;
};

} // namespace mbgl