#ifndef MBGL_STORAGE_DEFAULT_SQLITE_CACHE #define MBGL_STORAGE_DEFAULT_SQLITE_CACHE #include #include #include #include #include namespace mbgl { class Resource; class Response; class WorkRequest; namespace util { template class Thread; } // namespace util class SQLiteCache : private util::noncopyable { public: static std::shared_ptr getShared(const std::string &path = ":memory:"); SQLiteCache(const std::string &path = ":memory:"); ~SQLiteCache(); void setMaximumCacheSize(uint64_t size); void setMaximumCacheEntrySize(uint64_t size); using Callback = std::function)>; std::unique_ptr get(const Resource&, Callback); void put(const Resource&, const Response&); class Impl; private: const std::unique_ptr> thread; }; } // namespace mbgl #endif