Cache

Functions

~Cache
Cache
Model Open
void Close
void SetSearchPath
void AppendSearchPath
void SetWorkspacePath
const char * Exists
const char *const * GetModelPaths
void RemoveTemporaryFiles

Detailed Description

class Cache

This class is used to create and open existing models. Creation is done by simply opening a non-existent model. The cache can query known model names and whether or not a model exists in the system.

A cache is closed when its destructor is called or Database::Close(cache) is called.

In general invalid usage will throw exceptions. Using try catch blocks around your code is advised.

Public Functions

~Cache()
Cache(Cache &&that)
Model Open(const char *utf8_model_path, bool read_only = false)

Opens a Model object. New Models can only be created writable.

Parameters:
  • utf8_model_path – An absolute or partial path of a model directory.
  • read_only – If true the Model will be read only.
Returns:

A Model object.

void Close(Model &model)

Closes a Model object. The model object will be invalid after this call. This has the same effect as deleting the model object.

Parameters:model – The Model to close.
void SetSearchPath(const char *utf8_search_path)

Sets the paths that this Cache will use to search for models provided with a partial path. The provided path string will be parsed and broken on ‘;’. The ‘*’ character is not allowed. Existing search path will be reset. An example path: “e:/sc_test;e:/sc_data”.

Parameters:utf8_search_path – A path to search for models.
void AppendSearchPath(const char *utf8_search_path)

Appends more paths that this Cache will use to search for models provided with a partial path. The provided path string will be parsed and broken on ‘;’. The ‘*’ character is not allowed. An example path: “e:/sc_test;e:/sc_data”.

Parameters:utf8_search_path – A path to search for models.
void SetWorkspacePath(const char *utf8_directory_path)

Sets a path that this Cache will use as a temporary work space. This is a good idea if .scz files are in use. If the Cache exits normally the workspace will be left clean. If this is not set then the directory containing a .scz file will be used and must be writable.

Parameters:utf8_directory_path – A path to use for a temporary work space.
const char *Exists(const char *utf8_model_path)

Query if the specified model is a model known to the Cache. The returned pointer is only valid until the next call. If the utf8_model_path is not an absolute path the search path will be scanned. The utf8_model_path will not be expanded by the current working directory.

Parameters:utf8_model_path – The path or partial path of the model to query.
Returns:The ‘C’ string UTF8 file system path if found or nullptr if not found.
const char *const *GetModelPaths(size_t &out_count)

Query the models known to the Cache. This will scan the search path for valid models. The returned pointer is only valid until the next call.

Parameters:out_count – A write back value containing the number of models found.
Returns:An array of count length of ‘C’ string UTF8 file system paths of the known models.
void RemoveTemporaryFiles()

Remove any temporary files created by the cache. This includes decompressed files and directories created when opening a compressed SCZ file.