# 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.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your Docs generative AI assistant. Ask me anything about HOOPS Visualize Web or choose a sample question below to start a conversation:

What is HOOPS Visualize Web?
What are the latest release notes for HOOPS Visualize Web?
How do I start evaluating HOOPS Visualize Web?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...