|
libcommonc++
0.7
|
A general-purpose LRU-cache with a maximum capacity. More...
#include <Cache.h++>
Public Member Functions | |
| Cache (uint_t maxSize) | |
| Construct a new cache with the given maximum size. More... | |
| virtual | ~Cache () |
| Destructor. More... | |
| void | put (K key, T *item) |
| Put an item in the cache. More... | |
| T * | get (K key) const |
| Look up an item in the cache. More... | |
| T * | operator[] (K key) const |
| Index operator. More... | |
| T * | take (K key) |
| Remove an item from the cache, and return the item. More... | |
| bool | remove (K key) |
| Remove an item from the cache. More... | |
| bool | contains (K key) const |
| Test if the cache contains an item with the specified key. More... | |
| void | clear () |
| Remove all items from the cache. More... | |
| uint_t | getMaxSize () const |
| Return the maximum size of the cache, i.e., the maximum number of items that the cache can hold. More... | |
| uint_t | getSize () const |
| Return the current size of the cache, i.e., the number of items in the cache. More... | |
| bool | isEmpty () const |
| Test if the cache is empty. More... | |
Protected Member Functions | |
| virtual void | onRemove (K key, T *item) |
| A method that is called whenever an item is being removed from the cache, but just before it has been deleted. More... | |
A general-purpose LRU-cache with a maximum capacity.
The cache maintains a key/value map, and takes ownership of its items. If the cache is at full capacity when a new item is inserted, the least recently accessed item is removed to make room.
Whenever an item is removed from the cache as a result of a call to clear() remove(), put(), or the destructor, the onRemove() method is called just before the item is deleted.
Construct a new cache with the given maximum size.
| maxSize | The maximum number of items that the cache will hold. If 0, the value 1 will be used instead. |
|
virtual |
Destructor.
Clears the cache.
| void clear | ( | ) |
Remove all items from the cache.
| bool contains | ( | K | key | ) | const |
Test if the cache contains an item with the specified key.
| key | The key. |
| T* get | ( | K | key | ) | const |
Look up an item in the cache.
| key | The item key. |
|
inline |
Return the maximum size of the cache, i.e., the maximum number of items that the cache can hold.
|
inline |
Return the current size of the cache, i.e., the number of items in the cache.
|
inline |
Test if the cache is empty.
|
protectedvirtual |
A method that is called whenever an item is being removed from the cache, but just before it has been deleted.
The default implementation is a no-op. Subclasses may override this method to do any necessary cleanup of the item before it is deleted, but should not delete the item itself.
| key | The key for the item being removed. |
| item | The item being removed. |
|
inline |
Index operator.
Equivalent to get().
| void put | ( | K | key, |
| T * | item | ||
| ) |
Put an item in the cache.
| key | The key. |
| item | The item. |
| bool remove | ( | K | key | ) |
Remove an item from the cache.
| key | The item key. |
| T* take | ( | K | key | ) |
Remove an item from the cache, and return the item.
The onRemove() method is not called.
| key | The key. |