Package gluon :: Module cache :: Class CacheAbstract
[hide private]
[frames] | no frames]

Class CacheAbstract

source code

object --+
         |
        CacheAbstract
Known Subclasses:

Abstract class for cache implementations. Main function is now to provide referenced api documentation.

Use CacheInRam or CacheOnDisk instead which are derived from this class.

Attentions, Michele says:

There are signatures inside gdbm files that are used directly by the python gdbm adapter that often are lagging behind in the detection code in python part. On every occasion that a gdbm store is probed by the python adapter, the probe fails, because gdbm file version is newer. Using gdbm directly from C would work, because there is backward compatibility, but not from python! The .shelve file is discarded and a new one created (with new signature) and it works until it is probed again... The possible consequences are memory leaks and broken sessions.

Instance Methods [hide private]
 
__call__(self, key, f, time_expire=300)
Tries retrieve the value corresponding to `key` from the cache of the object exists and if it did not expire, else it called the function `f` and stores the output in the cache corresponding to `key`.
source code
 
__init__(self, request=None)
Parameters...
source code
 
_clear(self, storage, regex)
Auxiliary function called by `clear` to search and clear cache entries
source code
 
clear(self, regex=None)
Clears the cache of all keys that match the provided regular expression.
source code
 
increment(self, key, value=1)
Increments the cached value for the given key by the amount in value
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  cache_stats_name = 'web2py_cache_statistics'
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__call__(self, key, f, time_expire=300)
(Call operator)

source code 

Tries retrieve the value corresponding to `key` from the cache of the
object exists and if it did not expire, else it called the function `f`
and stores the output in the cache corresponding to `key`. In the case
the output of the function is returned.

:param key: the key of the object to be store or retrieved
:param f: the function, whose output is to be cached
:param time_expire: expiration of the cache in microseconds

- `time_expire` is used to compare the current time with the time when
    the requested object was last saved in cache. It does not affect
    future requests.
- Setting `time_expire` to 0 or negative value forces the cache to
    refresh.

If the function `f` is `None` the cache is cleared.

__init__(self, request=None)
(Constructor)

source code 

Parameters
----------
request:
    the global request object

Overrides: object.__init__

clear(self, regex=None)

source code 

Clears the cache of all keys that match the provided regular expression.
If no regular expression is provided, it clears all entries in cache.

Parameters
----------
regex:
    if provided, only keys matching the regex will be cleared.
    Otherwise all keys are cleared.

increment(self, key, value=1)

source code 

Increments the cached value for the given key by the amount in value

Parameters
----------
key:
    key for the cached object to be incremeneted
value:
    amount of the increment (defaults to 1, can be negative)