int af_savecache (Af_key *busyAso, Af_key* cachedAso, char *attr, int mode)
int af_cachesize (char path, int totalMax, int maxPerName, int maxPerGivenAttr);
DESCRIPTION
af_savecache copies a busy attributed software object
(busyAso) to a derived object cache. A key for the resulting
cached ASO is returned in the buffer cachedAso.
Derived object caches are intended to hold derived
objects that can be reproduced at any time. Reproducibility is
important, because cached ASOs may be deleted automatically due to
storage limitations for derived object caches.
A cache allows a certain number of versions per name (see function
af_cachesize described below) to be stored. When this number is
reached, each time a new version arrives, the oldest version (access
date) gets cleaned out.
The strategy of cleaning out old versions when space is needed for new
ones is influenced by the attr argument. When this is given
af_savecache searches for cached versions (with the same name as
the new one) carrying the given attribute. If it finds one or more
such versions, the oldest (access date) of them will be eliminated.
The mode argument may have one of the following values
AF_STORE_COMPLETE
(default) The cached file is stored unmodified.
AF_STORE_COMPRESSED
The cached file will be stored in a compressed format.
ASOs that are saved in derived object caches do not
automatically get a version number. By means of af_svnum (manual
page af_version(3)) you can attach any version number to an ASO stored
in a derived object cache.
af_cachesize defines the size strategy of the cache in directory
path. It sets the maximum cache size for the whole directory
(totalMax), the maximum number of versions per name
(maxPerName), and the number of versions allowed simultaneously
carrying the elimination attribute (see before). A value less or equal
zero given for any of the arguments of af_cachesize will cause this
argument to be ignored.
DIAGNOSTICS
Upon error, -1 is returned and af_errno is set to the
corresponding error number.
BUGS
Compression of cached files (mode AF_STORE_COMPRESSED) is not yet
supported.
af_cachesize cannot shrink derived object caches yet. Values given
must be greater or equal the prevoius size.