internal package
Foswiki::
Request::
Cache
internal package
Foswiki::Request::Cache
Class that implements a disk cache of
Foswiki::Request objects.
There are a couple of cases where we need to cache request objects; over a
403 redirect (which is a GET and therefore has limited parameter capacity)
and over a confirmation, such as a strikeone validation. In these cases we
need to cache not just the request parameters, but also any uploads
associated with the request. We also need the means to keep the cache tidy.
Note that the cache records the method() and path_info() of the original
request and restores them on reload.
ClassMethod
new()
Construct a new request cache.
ObjectMethod
save( $request ) → $uid
$request is a
Foswiki::Request object to be cached; the cache is
identifiable by the unique $uid,
which can be stored and passed to $cache->load(). A cache file will be kept
until it is loaded (which destroys the cache) or it is cleaned up.
ObjectMethod
load( $uid, $request )
$uid is the id returned by
save()
which identifies the request cache.
$request must be a
Foswiki::Request
object that will be popluated
with the data from the cache. Loading a cache will destroy the cache on disk.
StaticMethod
cleanup($timeout)
Clean up the cache by removing everything older than $timeout seconds.
If $timeout is 0 or undefined, it defaults to {Sessions}{ExpireAfter}.