MapLibre Native Core
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
database_file_source.hpp
Go to the documentation of this file.
1 #pragma once
2 
5 #include <mbgl/util/expected.hpp>
6 
7 namespace mbgl {
8 
9 class ClientOptions;
10 class ResourceOptions;
11 
12 // TODO: Split DatabaseFileSource into Ambient cache and Database interfaces.
14 public:
15  explicit DatabaseFileSource(const ResourceOptions& resourceOptions, const ClientOptions& clientOptions);
16  ~DatabaseFileSource() override;
17 
19  std::unique_ptr<AsyncRequest> request(const Resource&, Callback) override;
20  void forward(const Resource&, const Response&, std::function<void()> callback) override;
21  bool canRequest(const Resource&) const override;
22  void setProperty(const std::string&, const mapbox::base::Value&) override;
23  void pause() override;
24  void resume() override;
25 
26  // Methods common to Ambient cache and Offline functionality
27 
32  virtual void setDatabasePath(const std::string&, std::function<void()> callback);
33 
41  virtual void resetDatabase(std::function<void(std::exception_ptr)>);
42 
53  virtual void packDatabase(std::function<void(std::exception_ptr)> callback);
54 
63  virtual void runPackDatabaseAutomatically(bool);
64 
65  // Ambient cache
66 
76  virtual void put(const Resource&, const Response&);
77 
90  virtual void invalidateAmbientCache(std::function<void(std::exception_ptr)>);
91 
103  virtual void clearAmbientCache(std::function<void(std::exception_ptr)>);
104 
125  virtual void setMaximumAmbientCacheSize(uint64_t size, std::function<void(std::exception_ptr)> callback);
126 
127  // Offline
128 
137 
149  virtual void createOfflineRegion(const OfflineRegionDefinition& definition,
150  const OfflineRegionMetadata& metadata,
151  std::function<void(expected<OfflineRegion, std::exception_ptr>)>);
155  virtual void updateOfflineMetadata(int64_t regionID,
156  const OfflineRegionMetadata& metadata,
158 
162  virtual void setOfflineRegionObserver(const OfflineRegion&, std::unique_ptr<OfflineRegionObserver>);
163 
168 
176  std::function<void(expected<OfflineRegionStatus, std::exception_ptr>)>) const;
177 
198  virtual void mergeOfflineRegions(const std::string& sideDatabasePath,
199  std::function<void(expected<OfflineRegions, std::exception_ptr>)>);
200 
219  virtual void deleteOfflineRegion(const OfflineRegion&, std::function<void(std::exception_ptr)>);
220 
227  virtual void invalidateOfflineRegion(const OfflineRegion&, std::function<void(std::exception_ptr)>);
228 
233  virtual void setOfflineMapboxTileCountLimit(uint64_t) const;
234 
237 
240 
241 private:
242  class Impl;
243  const std::unique_ptr<Impl> impl;
244 };
245 
246 } // namespace mbgl
Holds values for client options.
virtual void updateOfflineMetadata(int64_t regionID, const OfflineRegionMetadata &metadata, std::function< void(expected< OfflineRegionMetadata, std::exception_ptr >)>)
ClientOptions getClientOptions() override
void resume() override
virtual void createOfflineRegion(const OfflineRegionDefinition &definition, const OfflineRegionMetadata &metadata, std::function< void(expected< OfflineRegion, std::exception_ptr >)>)
ResourceOptions getResourceOptions() override
void setResourceOptions(ResourceOptions) override
virtual void invalidateOfflineRegion(const OfflineRegion &, std::function< void(std::exception_ptr)>)
virtual void resetDatabase(std::function< void(std::exception_ptr)>)
~DatabaseFileSource() override
virtual void setMaximumAmbientCacheSize(uint64_t size, std::function< void(std::exception_ptr)> callback)
virtual void runPackDatabaseAutomatically(bool)
virtual void packDatabase(std::function< void(std::exception_ptr)> callback)
virtual void setOfflineMapboxTileCountLimit(uint64_t) const
virtual void getOfflineRegionStatus(const OfflineRegion &, std::function< void(expected< OfflineRegionStatus, std::exception_ptr >)>) const
void pause() override
std::unique_ptr< AsyncRequest > request(const Resource &, Callback) override
FileSource overrides.
virtual void put(const Resource &, const Response &)
void setProperty(const std::string &, const mapbox::base::Value &) override
Generic setter method.
virtual void mergeOfflineRegions(const std::string &sideDatabasePath, std::function< void(expected< OfflineRegions, std::exception_ptr >)>)
virtual void clearAmbientCache(std::function< void(std::exception_ptr)>)
void setClientOptions(ClientOptions) override
virtual void invalidateAmbientCache(std::function< void(std::exception_ptr)>)
bool canRequest(const Resource &) const override
Checks whether a resource could be requested from this file source.
DatabaseFileSource(const ResourceOptions &resourceOptions, const ClientOptions &clientOptions)
virtual void deleteOfflineRegion(const OfflineRegion &, std::function< void(std::exception_ptr)>)
virtual void setOfflineRegionObserver(const OfflineRegion &, std::unique_ptr< OfflineRegionObserver >)
virtual void listOfflineRegions(std::function< void(expected< OfflineRegions, std::exception_ptr >)>)
virtual void setDatabasePath(const std::string &, std::function< void()> callback)
void forward(const Resource &, const Response &, std::function< void()> callback) override
virtual void setOfflineRegionDownloadState(const OfflineRegion &, OfflineRegionDownloadState)
std::function< void(Response)> Callback
Definition: file_source.hpp:40
Holds values for resource options.
std::unique_ptr< Expression > string(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
Definition: actor.hpp:15
OfflineRegionDownloadState
Definition: offline.hpp:95
mapbox::base::Value Value
Definition: feature.hpp:11
variant< OfflineTilePyramidRegionDefinition, OfflineGeometryRegionDefinition > OfflineRegionDefinition
Definition: offline.hpp:69
std::vector< uint8_t > OfflineRegionMetadata
Definition: offline.hpp:84
nonstd::expected< T, E > expected
Definition: expected.hpp:8