Documentation/Source/eric6.E5Utilities.E5Cache.html

Thu, 18 Oct 2018 18:53:23 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 18 Oct 2018 18:53:23 +0200
changeset 6550
7c20da9a480a
parent 5926
69482290dbdd
permissions
-rw-r--r--

Updated source docu.

<!DOCTYPE html>
<html><head>
<title>eric6.E5Utilities.E5Cache</title>
<meta charset="UTF-8">
<style>
body {
    background: #EDECE6;
    margin: 0em 1em 10em 1em;
    color: black;
}

h1 { color: white; background: #85774A; }
h2 { color: white; background: #85774A; }
h3 { color: white; background: #9D936E; }
h4 { color: white; background: #9D936E; }
    
a { color: #BA6D36; }

</style>
</head>
<body><a NAME="top" ID="top"></a>
<h1>eric6.E5Utilities.E5Cache</h1>
<p>
Module implementing classes used for caching objects.
</p>
<h3>Global Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>
<table>
<tr>
<td><a href="#E5Cache">E5Cache</a></td>
<td>Class implementing a LRU cache of a specific size.</td>
</tr>
</table>
<h3>Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="E5Cache" ID="E5Cache"></a>
<h2>E5Cache</h2>
<p>
    Class implementing a LRU cache of a specific size.
</p><p>
    If the maximum number of entries is exceeded, the least recently used item
    is removed from the cache. A cache hit moves the entry to the front of the
    cache.
</p>
<h3>Derived from</h3>
object
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#E5Cache.__init__">E5Cache</a></td>
<td>Constructor</td>
</tr><tr>
<td><a href="#E5Cache.__adjustToSize">__adjustToSize</a></td>
<td>Private method to adjust the cache to its size.</td>
</tr><tr>
<td><a href="#E5Cache.__moveLast">__moveLast</a></td>
<td>Private method to move a cached item to the MRU position.</td>
</tr><tr>
<td><a href="#E5Cache.__pruneCache">__pruneCache</a></td>
<td>Private slot to prune outdated cache entries and restart the timer.</td>
</tr><tr>
<td><a href="#E5Cache.add">add</a></td>
<td>Public method to add an item to the cache.</td>
</tr><tr>
<td><a href="#E5Cache.clear">clear</a></td>
<td>Public method to clear the cache.</td>
</tr><tr>
<td><a href="#E5Cache.get">get</a></td>
<td>Public method to get an entry from the cache given its key.</td>
</tr><tr>
<td><a href="#E5Cache.getMaximumCacheTime">getMaximumCacheTime</a></td>
<td>Public method to get the maximum time entries may exist in the cache.</td>
</tr><tr>
<td><a href="#E5Cache.getSize">getSize</a></td>
<td>Public method to get the maximum size of the cache.</td>
</tr><tr>
<td><a href="#E5Cache.info">info</a></td>
<td>Public method to get some information about the cache.</td>
</tr><tr>
<td><a href="#E5Cache.length">length</a></td>
<td>Public method to get the current length of the cache.</td>
</tr><tr>
<td><a href="#E5Cache.remove">remove</a></td>
<td>Public method to remove an item from the cache.</td>
</tr><tr>
<td><a href="#E5Cache.reset">reset</a></td>
<td>Public method to reset the cache.</td>
</tr><tr>
<td><a href="#E5Cache.setMaximumCacheTime">setMaximumCacheTime</a></td>
<td>Public method to set the maximum time entries may exist in the cache.</td>
</tr><tr>
<td><a href="#E5Cache.setSize">setSize</a></td>
<td>Public method to change the maximum size of the cache.</td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="E5Cache.__init__" ID="E5Cache.__init__"></a>
<h4>E5Cache (Constructor)</h4>
<b>E5Cache</b>(<i>size=100</i>)
<p>
        Constructor
</p><dl>
<dt><i>size</i> (int)</dt>
<dd>
maximum number of entries that may be stored in the cache
</dd>
</dl><a NAME="E5Cache.__adjustToSize" ID="E5Cache.__adjustToSize"></a>
<h4>E5Cache.__adjustToSize</h4>
<b>__adjustToSize</b>(<i></i>)
<p>
        Private method to adjust the cache to its size.
</p><a NAME="E5Cache.__moveLast" ID="E5Cache.__moveLast"></a>
<h4>E5Cache.__moveLast</h4>
<b>__moveLast</b>(<i>key</i>)
<p>
        Private method to move a cached item to the MRU position.
</p><dl>
<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
<dd>
key of the item to be retrieved
</dd>
</dl><a NAME="E5Cache.__pruneCache" ID="E5Cache.__pruneCache"></a>
<h4>E5Cache.__pruneCache</h4>
<b>__pruneCache</b>(<i></i>)
<p>
        Private slot to prune outdated cache entries and restart the timer.
</p><a NAME="E5Cache.add" ID="E5Cache.add"></a>
<h4>E5Cache.add</h4>
<b>add</b>(<i>key, item</i>)
<p>
        Public method to add an item to the cache.
</p><p>
        If the key is already in use, the cached item is replaced by the new
        one given and is moved to the MRU position
</p><dl>
<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
<dd>
key of the item to be retrieved
</dd><dt><i>item</i> (object)</dt>
<dd>
item to be cached under the given key
</dd>
</dl><a NAME="E5Cache.clear" ID="E5Cache.clear"></a>
<h4>E5Cache.clear</h4>
<b>clear</b>(<i></i>)
<p>
        Public method to clear the cache.
</p><a NAME="E5Cache.get" ID="E5Cache.get"></a>
<h4>E5Cache.get</h4>
<b>get</b>(<i>key</i>)
<p>
        Public method to get an entry from the cache given its key.
</p><p>
        If the key is present in the cache, it is moved to the MRU position.
</p><dl>
<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
<dd>
key of the item to be retrieved
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
cached item for the given key or None, if the key is not
            present
</dd>
</dl><dl>
<dt>Return Type:</dt>
<dd>
object or None
</dd>
</dl><a NAME="E5Cache.getMaximumCacheTime" ID="E5Cache.getMaximumCacheTime"></a>
<h4>E5Cache.getMaximumCacheTime</h4>
<b>getMaximumCacheTime</b>(<i></i>)
<p>
        Public method to get the maximum time entries may exist in the cache.
</p><dl>
<dt>Returns:</dt>
<dd>
maximum cache time in seconds
</dd>
</dl><dl>
<dt>Return Type:</dt>
<dd>
int
</dd>
</dl><a NAME="E5Cache.getSize" ID="E5Cache.getSize"></a>
<h4>E5Cache.getSize</h4>
<b>getSize</b>(<i></i>)
<p>
        Public method to get the maximum size of the cache.
</p><dl>
<dt>Returns:</dt>
<dd>
maximum number of entries of the cache
</dd>
</dl><dl>
<dt>Return Type:</dt>
<dd>
int
</dd>
</dl><a NAME="E5Cache.info" ID="E5Cache.info"></a>
<h4>E5Cache.info</h4>
<b>info</b>(<i></i>)
<p>
        Public method to get some information about the cache.
</p><dl>
<dt>Returns:</dt>
<dd>
dictionary containing the cache info
</dd>
</dl><dl>
<dt>Return Type:</dt>
<dd>
dict (with keys "hits", "misses", "maxsize", "currsize")
</dd>
</dl><a NAME="E5Cache.length" ID="E5Cache.length"></a>
<h4>E5Cache.length</h4>
<b>length</b>(<i></i>)
<p>
        Public method to get the current length of the cache.
</p><dl>
<dt>Returns:</dt>
<dd>
current length of the cache
</dd>
</dl><dl>
<dt>Return Type:</dt>
<dd>
int
</dd>
</dl><a NAME="E5Cache.remove" ID="E5Cache.remove"></a>
<h4>E5Cache.remove</h4>
<b>remove</b>(<i>key</i>)
<p>
        Public method to remove an item from the cache.
</p><dl>
<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
<dd>
key of the item to be retrieved
</dd>
</dl><a NAME="E5Cache.reset" ID="E5Cache.reset"></a>
<h4>E5Cache.reset</h4>
<b>reset</b>(<i></i>)
<p>
        Public method to reset the cache.
</p><p>
        This is like clear() but sets the various counters to their initial
        value as well.
</p><a NAME="E5Cache.setMaximumCacheTime" ID="E5Cache.setMaximumCacheTime"></a>
<h4>E5Cache.setMaximumCacheTime</h4>
<b>setMaximumCacheTime</b>(<i>time</i>)
<p>
        Public method to set the maximum time entries may exist in the cache.
</p><dl>
<dt><i>time</i> (int)</dt>
<dd>
maximum cache time in seconds
</dd>
</dl><a NAME="E5Cache.setSize" ID="E5Cache.setSize"></a>
<h4>E5Cache.setSize</h4>
<b>setSize</b>(<i>newSize</i>)
<p>
        Public method to change the maximum size of the cache.
</p><dl>
<dt><i>newSize</i> (int)</dt>
<dd>
maximum number of entries that may be stored in the
            cache
</dd>
</dl>
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

eric ide

mercurial