THE AUDITORY MODELING TOOLBOX

Applies to version: 1.0.0

View the code

Go to function

AMT_CACHE - Caches variables for later or retrieves variables from cache

Usage

var = amt_cache('get', package, flags);
amt_cache('set', package, variables);

Description

amt_cache supports the following commands:

'get'

gets the content of a package from the cache. variables = amt_cache('get', package) reads a package from the cache and outputs its content in var. package must a be a string identifying the package of variables. If the package contains multiple variables, variables can be a list of variables like [var1, var2, ... , varN] = .... The order of returned variables is the same as that used for saving in cache. ... = amt_cache('get', package, flags) allows to control the behaviour of accessing the cache. flags can be:

'normal' Use cached package. If the cached package is
locally not available, it will be downloaded from the internet. If it is remotely not available, enforce recalculation of the package. Note that this method may by-pass the actual processing and thus does not always test the actual functionality of a model. It is, however, very convenient for fast access of results like plotting figures. On the internet, the cached packages are available for the release versions only.
'cached' Enforce to use cached package. If the cached package is
locally not available, it will be downloaded from the internet. If it is remotely not available, an error will be thrown.
'redo' Enforce the recalculation of the package.
[..] = amt_cache('get', [..]) outputs empty variables always.
'localonly' Package will be recalculated when locally
not available. Do not connect to the internet.
'set' stores variables as a package in the cache. amt_cache('set', package, variables) saves variables in the cache using the name package. variables can be a list of variables separated by comma.
'getURL' outputs the URL of the cache in the internet.
'setURL' sets the URL of the internet cache to a new URL.
'clearAll' clears the cache directory. An interactive confirmation is required.

This is an example of using the cache in a function. In this example, we store the variables x, y, and z in the package fileABC:

definput.import={'amt_cache'}; % load default flags from arg_amt_cache
[flags,~]  = ltfatarghelper({},definput,varargin); % overwrite flags if user-provided
[x,y,z] = amt_cache('get', 'fileABC', flags);
if isempty(x)
      % calculate your variables x,y,z here
    amt_cache('set', 'fileABC', x, y, z); % save calculated variables in fileABC
end
%  use your variables x, y, z here

Note that in this example, the flags indicating the mode of caching are stored in flags.cachemode which can be achieved by:

definput.import={'amt_cache'};
[flags, keyvals] = ltfatarghelper({}, definput, varargin);

at the begin of the function. This way, the cache mode can be provided by the user if required.