1#pragma once
2
3#include <mbgl/storage/response.hpp>
4#include <mbgl/storage/resource.hpp>
5
6#include <mbgl/util/noncopyable.hpp>
7#include <mbgl/util/async_request.hpp>
8
9#include <functional>
10#include <memory>
11
12namespace mbgl {
13
14class FileSource : private util::noncopyable {
15public:
16 virtual ~FileSource() = default;
17
18 using Callback = std::function<void (Response)>;
19
20 // Request a resource. The callback will be called asynchronously, in the same
21 // thread as the request was made. This thread must have an active RunLoop. The
22 // request may be cancelled before completion by releasing the returned AsyncRequest.
23 // If the request is cancelled before the callback is executed, the callback will
24 // not be executed.
25 virtual std::unique_ptr<AsyncRequest> request(const Resource&, Callback) = 0;
26
27 // When a file source supports consulting a local cache only, it must return true.
28 // Cache-only requests are requests that aren't as urgent, but could be useful, e.g.
29 // to cover part of the map while loading. The FileSource should only do cheap actions to
30 // retrieve the data, e.g. load it from a cache, but not from the internet.
31 virtual bool supportsCacheOnlyRequests() const {
32 return false;
33 }
34};
35
36} // namespace mbgl
37

source code of qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/storage/file_source.hpp