#include <LRUCache.h>
The add methods will evict the least recently used non-dirty key. If all the indices are dirty, then the least recently used dirty key will be evicted.
Use timeouts with caution---if a dirty entry expires, it will be deleted the next time containsKey is called for its entry. Because dirty entries may be deleted before they have a chance to be cleared, it is advised to not use a timeout when storing dirty data in the cache.
Definition at line 68 of file LRUCache.h.
Public Member Functions | |
| LRUCache (unsigned capacity=32, time_t timeout=0) | |
| create a new cache with the specified capacity. | |
| void | addDirty (const K &index, const D &buf) |
| add a new entry to the cache, mark as dirty | |
| void | add (const K &index, const D &buf, bool dirty=false) |
| add a new entry to the cache, set dirty as specified | |
| void | remove (const K &index) |
| removes the entry from the cache | |
| bool | get (const K &index, D &data) |
| lookup the value for the given key | |
| D & | get (const K &index) |
| lookup the value for the given key | |
| D & | operator[] (const K &index) |
| lookup the value for the given key | |
| bool | isFullDirty () const |
| true if the cache is full, and all entries are dirty | |
| bool | hasDirty () const |
| true if any entries are dirty | |
| const K & | getLastDirtyKey () const |
| return the least recently accessed dirty key | |
| D & | getLastDirty () const |
| return the least recently accessed dirty value | |
| bool | getLastDirty (K &k, D &d) const |
| return the least recently accessed dirty key and value | |
| void | clearLastDirty () |
| clear the dirty bit for the key returned by getLastDirtyEntry() | |
| void | clearDirty (const K &index) |
| clear the dirty bit for the given key | |
| D & | getDirty (const K &index) |
| get the value of the given key | |
| mace::LRUCache< K, D >::LRUCache | ( | unsigned | capacity = 32, |
|
| time_t | timeout = 0 | |||
| ) | [inline] |
create a new cache with the specified capacity.
If a timeout is given, then entries will be expired after the specified timeout.
Definition at line 98 of file LRUCache.h.
| void mace::LRUCache< K, D >::addDirty | ( | const K & | index, | |
| const D & | buf | |||
| ) | [inline] |
add a new entry to the cache, mark as dirty
The add methods will evict the least recently used non-dirty key. If all the indices are dirty, then the least recently used dirty key will be evicted.
Definition at line 128 of file LRUCache.h.
| void mace::LRUCache< K, D >::add | ( | const K & | index, | |
| const D & | buf, | |||
| bool | dirty = false | |||
| ) | [inline] |
add a new entry to the cache, set dirty as specified
The add methods will evict the least recently used non-dirty key. If all the indices are dirty, then the least recently used dirty key will be evicted.
Definition at line 139 of file LRUCache.h.
| bool mace::LRUCache< K, D >::get | ( | const K & | index, | |
| D & | data | |||
| ) | [inline] |
lookup the value for the given key
Definition at line 240 of file LRUCache.h.
Referenced by BufferedBlockManager::getBlock().
| D& mace::LRUCache< K, D >::get | ( | const K & | index | ) | [inline] |
lookup the value for the given key
Definition at line 258 of file LRUCache.h.
| D& mace::LRUCache< K, D >::operator[] | ( | const K & | index | ) | [inline] |
lookup the value for the given key
Definition at line 273 of file LRUCache.h.
| D& mace::LRUCache< K, D >::getDirty | ( | const K & | index | ) | [inline] |
get the value of the given key
does not adjust access status: the key remains in its current position with respect to how recently it was used
Definition at line 356 of file LRUCache.h.
1.5.5