|
OpenTTD Source
1.11.0-beta2
|
Size limited cache with a least recently used eviction strategy. More...
#include <lrucache.hpp>
Public Member Functions | |
| LRUCache (size_t max_items) | |
| Construct new LRU cache map. More... | |
| bool | Contains (const Tkey key) |
| Test if a key is already contained in the cache. More... | |
| Tdata * | Insert (const Tkey key, Tdata *item) |
| Insert a new data item with a specified key. More... | |
| Tdata * | Pop () |
| Pop the least recently used item. More... | |
| Tdata * | Get (const Tkey key) |
| Get an item from the cache. More... | |
Private Types | |
| typedef std::pair< Tkey, Tdata * > | Tpair |
| typedef std::list< Tpair >::iterator | Titer |
Private Attributes | |
| std::list< Tpair > | data |
| Ordered list of all items. | |
| std::unordered_map< Tkey, Titer > | lookup |
| Map of keys to items. | |
| const size_t | capacity |
| Number of items to cache. | |
Size limited cache with a least recently used eviction strategy.
| Tkey | Type of the cache key. |
| Tdata | Type of the cache item. The cache will store a pointer of this type. |
Definition at line 27 of file lrucache.hpp.
Construct new LRU cache map.
| max_items | Number of items to store at most. |
Definition at line 42 of file lrucache.hpp.
|
inline |
Test if a key is already contained in the cache.
| key | The key to search. |
Definition at line 49 of file lrucache.hpp.
Referenced by LRUCache< SpriteID, Sprite >::Insert().
|
inline |
Get an item from the cache.
| key | The key to look up. |
Definition at line 106 of file lrucache.hpp.
|
inline |
Insert a new data item with a specified key.
| key | Key under which the item should be stored. |
| item | Item to insert. |
Definition at line 60 of file lrucache.hpp.
|
inline |
Pop the least recently used item.
Definition at line 90 of file lrucache.hpp.
Referenced by OpenGLBackend::ClearCursorCache().