NAME¶
af_savecache, af_cachesize - AtFS derived object cache handling
SYNOPSIS¶
#include <atfs.h>
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.