summaryrefslogtreecommitdiff
path: root/include/mbgl/storage/file_cache.hpp
blob: 65d6dfbff0d33d64bcf26933acd426aac6b7485d (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
#ifndef MBGL_STORAGE_FILE_CACHE
#define MBGL_STORAGE_FILE_CACHE

#include <mbgl/util/noncopyable.hpp>

#include <functional>
#include <memory>

namespace mbgl {

struct Resource;
class Response;
class WorkRequest;

class FileCache : private util::noncopyable {
public:
    virtual ~FileCache() = default;

    enum class Hint : bool { Full, Refresh };
    using Callback = std::function<void(std::unique_ptr<Response>)>;

    virtual std::unique_ptr<WorkRequest> get(const Resource &resource, Callback callback) = 0;
    virtual void put(const Resource &resource, std::shared_ptr<const Response> response, Hint hint) = 0;
};

} // namespace mbgl

#endif