diff options
Diffstat (limited to 'src/mbgl/tile/tile_cache.hpp')
-rw-r--r-- | src/mbgl/tile/tile_cache.hpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mbgl/tile/tile_cache.hpp b/src/mbgl/tile/tile_cache.hpp new file mode 100644 index 0000000000..4d0b42242a --- /dev/null +++ b/src/mbgl/tile/tile_cache.hpp @@ -0,0 +1,32 @@ +#ifndef MBGL_MAP_TILE_CACHE +#define MBGL_MAP_TILE_CACHE + +#include <list> +#include <memory> +#include <unordered_map> + +namespace mbgl { + +class TileData; + +class TileCache { +public: + TileCache(size_t size_ = 0) : size(size_) {} + + void setSize(size_t); + size_t getSize() const { return size; }; + void add(uint64_t key, std::shared_ptr<TileData> data); + std::shared_ptr<TileData> get(uint64_t key); + bool has(uint64_t key); + void clear(); + +private: + std::unordered_map<uint64_t, std::shared_ptr<TileData>> tiles; + std::list<uint64_t> orderedKeys; + + size_t size; +}; + +} // namespace mbgl + +#endif |