1 #pragma once
2 
3 #include <mbgl/actor/actor_ref.hpp>
4 #include <mbgl/storage/file_source.hpp>
5 #include <mbgl/util/constants.hpp>
6 #include <mbgl/util/optional.hpp>
7 
8 namespace mbgl {
9 
10 class ResourceTransform;
11 
12 class OnlineFileSource : public FileSource {
13 public:
14     OnlineFileSource();
15     ~OnlineFileSource() override;
16 
setAPIBaseURL(const std::string & t)17     void setAPIBaseURL(const std::string& t) { apiBaseURL = t; }
getAPIBaseURL() const18     std::string getAPIBaseURL() const { return apiBaseURL; }
19 
setAccessToken(const std::string & t)20     void setAccessToken(const std::string& t) { accessToken = t; }
getAccessToken() const21     std::string getAccessToken() const { return accessToken; }
22 
23     void setResourceTransform(optional<ActorRef<ResourceTransform>>&&);
24 
25     std::unique_ptr<AsyncRequest> request(const Resource&, Callback) override;
26 
27     // For testing only.
28     void setOnlineStatus(bool);
29 
30 private:
31     friend class OnlineFileRequest;
32 
33     class Impl;
34     const std::unique_ptr<Impl> impl;
35     std::string accessToken;
36     std::string apiBaseURL = mbgl::util::API_BASE_URL;
37 };
38 
39 } // namespace mbgl
40