OpenTTD Source 20241224-master-gee860a5c8e
|
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. | |
bool | Contains (const Tkey key) |
Test if a key is already contained in the cache. | |
Tdata * | Insert (const Tkey key, Tdata *item) |
Insert a new data item with a specified key. | |
Tdata * | Pop () |
Pop the least recently used item. | |
Tdata * | Get (const Tkey key) |
Get an item from the cache. | |
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 22 of file lrucache.hpp.
|
private |
Definition at line 25 of file lrucache.hpp.
|
private |
Definition at line 24 of file lrucache.hpp.
|
inline |
Construct new LRU cache map.
max_items | Number of items to store at most. |
Definition at line 37 of file lrucache.hpp.
|
inline |
Test if a key is already contained in the cache.
key | The key to search. |
Definition at line 44 of file lrucache.hpp.
Referenced by OpenGLBackend::DrawMouseCursor(), and LRUCache< Tkey, Tdata >::Insert().
|
inline |
Get an item from the cache.
key | The key to look up. |
Definition at line 101 of file lrucache.hpp.
Referenced by OpenGLBackend::DrawMouseCursor().
|
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 55 of file lrucache.hpp.
References LRUCache< Tkey, Tdata >::Contains(), and LRUCache< Tkey, Tdata >::data.
|
inline |
Pop the least recently used item.
Definition at line 85 of file lrucache.hpp.
Referenced by OpenGLBackend::InternalClearCursorCache().
|
private |
Number of items to cache.
Definition at line 30 of file lrucache.hpp.
|
private |
Ordered list of all items.
Definition at line 27 of file lrucache.hpp.
Referenced by LRUCache< Tkey, Tdata >::Insert().
|
private |
Map of keys to items.
Definition at line 28 of file lrucache.hpp.