Added aliases for std::chrono typedefs (eg. 'Seconds' for std::chrono::seconds). These aliases are used together with templated helper functions to replace time_t with std::chrono::seconds for most cases, in particular for 'modified' and 'expires' values in Response.
41 lines
913 B
C++
41 lines
913 B
C++
#ifndef MBGL_STORAGE_DEFAULT_SQLITE_CACHE_IMPL
|
|
#define MBGL_STORAGE_DEFAULT_SQLITE_CACHE_IMPL
|
|
|
|
#include <mbgl/storage/sqlite_cache.hpp>
|
|
#include <mbgl/util/chrono.hpp>
|
|
|
|
namespace mapbox {
|
|
namespace sqlite {
|
|
class Database;
|
|
class Statement;
|
|
}
|
|
}
|
|
|
|
namespace mbgl {
|
|
|
|
class SQLiteCache::Impl {
|
|
public:
|
|
explicit Impl(const std::string &path = ":memory:");
|
|
~Impl();
|
|
|
|
void get(const Resource&, Callback);
|
|
void put(const Resource& resource, std::shared_ptr<const Response> response);
|
|
void refresh(const Resource& resource, Seconds expires);
|
|
|
|
private:
|
|
void createDatabase();
|
|
void createSchema();
|
|
|
|
const std::string path;
|
|
std::unique_ptr<::mapbox::sqlite::Database> db;
|
|
std::unique_ptr<::mapbox::sqlite::Statement> getStmt;
|
|
std::unique_ptr<::mapbox::sqlite::Statement> putStmt;
|
|
std::unique_ptr<::mapbox::sqlite::Statement> refreshStmt;
|
|
bool schema = false;
|
|
};
|
|
|
|
|
|
}
|
|
|
|
#endif
|