An implementation of a very simple LRU algorithm. More...
Public Member Functions | |
SimpleLru (string name, unsigned int max_size) | |
beginEpoch () | |
Marks the end of the previous epoch and the beginning of the next one. | |
considerEvict () | |
Evicts a sequence of objects if the queue is full. | |
unsigned int | countActiveSize () |
Returns the total size of the pages that were enqueued since the last call to begin_epoch(). | |
evictTo (unsigned int target_size) | |
Evicts a sequence of objects until the queue fits within the indicated target size, regardless of its normal max size. | |
unsigned int | getMaxSize () |
Returns the max size of all objects that are allowed to be active on the LRU. | |
unsigned int | getTotalSize () |
Returns the total size of all objects currently active on the LRU. | |
output (ostream out) | |
Outputs the Namable. | |
setMaxSize (unsigned int max_size) | |
Changes the max size of all objects that are allowed to be active on the LRU. | |
bool | validate () |
Checks that the LRU is internally self-consistent. | |
write (ostream out, int indent_level) |
An implementation of a very simple LRU algorithm.
Also see AdaptiveLru.
beginEpoch | ( | ) |
Marks the end of the previous epoch and the beginning of the next one.
This will evict any objects that are pending eviction, and also update any internal bookkeeping.
considerEvict | ( | ) |
Evicts a sequence of objects if the queue is full.
unsigned int countActiveSize | ( | ) |
Returns the total size of the pages that were enqueued since the last call to begin_epoch().
Evicts a sequence of objects until the queue fits within the indicated target size, regardless of its normal max size.
unsigned int getMaxSize | ( | ) |
Returns the max size of all objects that are allowed to be active on the LRU.
unsigned int getTotalSize | ( | ) |
Returns the total size of all objects currently active on the LRU.
setMaxSize | ( | unsigned int | max_size | ) |
Changes the max size of all objects that are allowed to be active on the LRU.
If the size is (size_t)-1, there is no limit.
bool validate | ( | ) |
Checks that the LRU is internally self-consistent.
Returns true if successful, false if there is some problem.