#pragma once #include #include #include #include #include namespace mbgl { class TileCache { public: TileCache(size_t size_ = 0) : size(size_) {} void setSize(size_t); size_t getSize() const { return size; }; void add(const OverscaledTileID& key, std::unique_ptr tile); std::unique_ptr pop(const OverscaledTileID& key); Tile* get(const OverscaledTileID& key); bool has(const OverscaledTileID& key); void clear(); private: std::map> tiles; std::list orderedKeys; size_t size; }; } // namespace mbgl