class HybridCache(BaseCache):
Constructor: HybridCache(on_leave, last_cache_size, top_cache_size)
A pyzim.cache.BaseCache that internally utilizes both a pyzim.cache.LastAccessCache and a pyzim.cache.TopAccessCache.
| Method | __init__ |
The default constructor. |
| Method | clear |
Empty this cache. |
| Method | get |
Return the element that has been cached for this key. |
| Method | has |
Return True if an element is cached for the specific key. |
| Method | push |
Push an element for this key into this cache. |
| Method | remove |
If an element is cached for key, remove it from the cache. |
| Instance Variable | last |
the last-access cache |
| Instance Variable | top |
the top-access cache |
| Method | _on |
A helper method that will be called whenever any element leaves one of the wrapped chaches. |
Inherited from BaseCache:
| Instance Variable | on |
a callable expecting two arguments (key, value) that will be called when an element leaves the cache |
pyzim.cache.BaseCache.__init__The default constructor.
| Parameters | |
onNone | See BaseCache.__init__ |
lastint | size of the last-access cache |
topint | size of the top-access cache |
pyzim.cache.BaseCache.clearEmpty this cache.
| Parameters | |
callbool | if nonzero (default), call BaseCache.on_leave for each element cleared |
pyzim.cache.BaseCache.getReturn the element that has been cached for this key.
| Parameters | |
| key:hashable | key for the element that should be returned |
| Returns | |
same as passed to BaseCache.push | the element |
| Raises | |
KeyError | if no element was cached for this key |
pyzim.cache.BaseCache.hasReturn True if an element is cached for the specific key.
| Parameters | |
| key:hashable | key of element that should be checked |
| Returns | |
bool | True if an element has been cached for this key |
pyzim.cache.BaseCache.pushPush an element for this key into this cache.
It is up for the cache to decide whether the element will actually be cached or not. If allow_replacement=False is set, no other element should be kicked from the cache.
Re-pushing an already cached element will not update the cached element.
| Parameters | |
| key:hashable | key which will be used to identify the element |
| element:any | element to cache |
allowbool | if this value is false, do not cache if this would kick another element from the cache |
| Returns | |
bool | True if the element is now cached, False otherwise |
pyzim.cache.BaseCache.removeIf an element is cached for key, remove it from the cache.
| Parameters | |
| key:hashable | key of element to remove |
callbool | if nonzero (default), call BaseCache.on_leave on the removed element |
A helper method that will be called whenever any element leaves one of the wrapped chaches.
It is used to ensure that even if HybridCache.on_leave is changed after init, the wrapped caches will call the new new function.
| Parameters | |
| key:any | the key of the element leaving the cache |
| value:any | value of the element leaving the cache |