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. |