Woolz Image Processing
Version 1.7.5
|
A least recent use removal cache allowing rank and random access to it's entries. Rank access is via a doubly linked list (using rankPrv and rankNxt), while random access is via hash table (using the item's key and hashNxt). The cache will unlink items as required to maintain the set maximum number of entries and maximum total entry size. Typedef: AlcLRUCache. More...
Data Fields | |
unsigned int | numItem |
unsigned int | maxItem |
size_t | curSz |
size_t | maxSz |
unsigned int | hashTblSz |
unsigned int | itemBlkSz |
AlcLRUCKeyFn | keyFn |
AlcLRUCCmpFn | cmpFn |
AlcLRUCUnlinkFn | unlinkFn |
struct _AlcBlockStack * | freeStack |
struct _AlcLRUCItem * | freeList |
struct _AlcLRUCItem * | rankHead |
struct _AlcLRUCItem * | rankTail |
struct _AlcLRUCItem ** | hashTbl |
A least recent use removal cache allowing rank and random access to it's entries. Rank access is via a doubly linked list (using rankPrv and rankNxt), while random access is via hash table (using the item's key and hashNxt). The cache will unlink items as required to maintain the set maximum number of entries and maximum total entry size. Typedef: AlcLRUCache.
unsigned int _AlcLRUCache::numItem |
Current number of items in the cache.
Referenced by AlcLRUCacheFacts(), AlcLRUCEntryAdd(), AlcLRUCEntryAddWithKey(), AlcLRUCEntryRemoveAll(), AlcLRUCEntryRemoveWithKey(), and AlcLRUCItemFind().
unsigned int _AlcLRUCache::maxItem |
Maximum number of items in the cache.
Referenced by AlcLRUCacheFacts(), and AlcLRUCacheNew().
size_t _AlcLRUCache::curSz |
Current total cache size.
Referenced by AlcLRUCacheFacts(), AlcLRUCacheMaxSz(), AlcLRUCEntryAdd(), AlcLRUCEntryAddWithKey(), AlcLRUCEntryRemoveAll(), AlcLRUCEntryRemoveWithKey(), and AlcLRUCItemFind().
size_t _AlcLRUCache::maxSz |
Maximum total cache size.
Referenced by AlcLRUCacheFacts(), AlcLRUCacheMaxSz(), AlcLRUCacheNew(), AlcLRUCEntryAdd(), and AlcLRUCEntryAddWithKey().
unsigned int _AlcLRUCache::hashTblSz |
Size of the hash table.
Referenced by AlcLRUCacheFacts(), AlcLRUCacheNew(), AlcLRUCEntryRemoveAll(), AlcLRUCItemFind(), and AlcLRUCKeyGetNHashItem().
unsigned int _AlcLRUCache::itemBlkSz |
Number of items to allocate in a block.
Referenced by AlcLRUCacheFacts(), and AlcLRUCacheNew().
AlcLRUCKeyFn _AlcLRUCache::keyFn |
Function called to compute a numeric key for an entry.
Referenced by AlcLRUCacheFacts(), AlcLRUCacheNew(), AlcLRUCEntryAdd(), AlcLRUCEntryGet(), and AlcLRUCEntryRemove().
AlcLRUCCmpFn _AlcLRUCache::cmpFn |
Function called to compare two entries, returning zero only iff the entries match.
Referenced by AlcLRUCacheFacts(), AlcLRUCacheNew(), and AlcLRUCItemFind().
AlcLRUCUnlinkFn _AlcLRUCache::unlinkFn |
Function called before unlinking and removing an item from the cache.
Referenced by AlcLRUCacheFacts(), AlcLRUCacheNew(), AlcLRUCEntryRemoveAll(), AlcLRUCEntryRemoveWithKey(), and AlcLRUCItemFind().
struct _AlcBlockStack* _AlcLRUCache::freeStack |
Stack of blocks of items.
Referenced by AlcLRUCacheFacts(), and AlcLRUCacheFree().
struct _AlcLRUCItem* _AlcLRUCache::freeList |
Head of the linked list of free cache items available for use.
Referenced by AlcLRUCacheFacts().
struct _AlcLRUCItem* _AlcLRUCache::rankHead |
Head of the linked list of cache items in priority rank order. This is maintained with the most recently used item at the head and the least recently used item at the tail.
Referenced by AlcLRUCacheFacts(), and AlcLRUCEntryRemoveAll().
struct _AlcLRUCItem* _AlcLRUCache::rankTail |
Tail of the linked list of cache items in rank order.
Referenced by AlcLRUCacheFacts(), and AlcLRUCacheMaxSz().
struct _AlcLRUCItem** _AlcLRUCache::hashTbl |
Hash table of cache items.
Referenced by AlcLRUCacheFacts(), AlcLRUCacheFree(), AlcLRUCacheNew(), AlcLRUCEntryRemoveAll(), AlcLRUCItemFind(), and AlcLRUCKeyGetNHashItem().