1#pragma once
2
3#include <mbgl/tile/tile_id.hpp>
4
5#include <list>
6#include <memory>
7#include <map>
8
9namespace mbgl {
10
11class Tile;
12
13class TileCache {
14public:
15 TileCache(size_t size_ = 0) : size(size_) {}
16
17 void setSize(size_t);
18 size_t getSize() const { return size; };
19 void add(const OverscaledTileID& key, std::unique_ptr<Tile> data);
20 std::unique_ptr<Tile> pop(const OverscaledTileID& key);
21 Tile* get(const OverscaledTileID& key);
22 bool has(const OverscaledTileID& key);
23 void clear();
24
25private:
26 std::map<OverscaledTileID, std::unique_ptr<Tile>> tiles;
27 std::list<OverscaledTileID> orderedKeys;
28
29 size_t size;
30};
31
32} // namespace mbgl
33

source code of qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/tile/tile_cache.hpp