# Database

## Functions

void | `SetLicense`
Cache | `Open`
Cache | `Open`
Cache | `Open`
void | `Close`
uint32_t | `Version`
bool | `DecompressSCZ`
char const * | `QuerySCZ`
bool | `CreateMemoryDevice`
bool | `DestroyMemoryDevice`
MemoryDevice * | `GetMemoryDevice`
size_t | `GetMemoryDeviceNames`

## Detailed Description

class `Database`

  This class is used to create a Cache object or decompress a .scz file.

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

  Public Static Functions

  static void `SetLicense`(const char *encoded_license)

    Sets the license. A valid license must be provided or an exception will be thrown.

    Parameters: | encoded_license – A valid encoded license string.

  static Cache `Open`(Logger const &logger)

    Opens a Cache object with default file system.

    Parameters: | logger – A Logger object for status and error reporting.

  static Cache `Open`(Logger const &logger, MemoryDevice *memory_device)

    Opens a Cache object.

    Parameters: | logger – A Logger object for status and error reporting. memory_device – An optional MemoryDevice used to sandbox IO.

  static Cache `Open`(Logger const &logger, SC::IO::AbstractFilesystem *file_system)

    Opens a Cache object.

    Parameters: | logger – A Logger object for status and error reporting. file_system – An optional AbstractFilesystem used to customize IO operations. operations involing a local workspace.

  static void `Close`(Cache &cache)

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

    Parameters: | cache – A Cache object.

  static uint32_t `Version`()

    Query the version of the SC::Store

    Returns: | The SC::Store version.

  static bool `DecompressSCZ`(char const *utf8_path_to_scz_file, char const *utf8_output_model_path, Logger const &logger, MemoryDevice *memory_device = nullptr)

    Utility to decompress a .scz file.

    Parameters: | utf8_path_to_scz_file – An absolute path to a .scz file to decompress. utf8_output_model_path – An absolute path to output the uncompressed model. logger – A Logger object for status and error reporting. memory_device – An optional MemoryDevice used to sandbox IO.
    Returns: | True if the file decompressed.

  static char const *`QuerySCZ`(char const *utf8_path_to_scz_file, Logger const &logger, MemoryDevice *memory_device = nullptr)

    Utility to query information about a .scz file. Returned pointer is only valid until the next call. The returned string will contain “Compressed” if it is a compressed .scz or “Invalid” if the file is not a scz. A bundled .scz will contain “Bundled” with “Editable” and “Streamable” depending on it’s contents.

    Parameters: | utf8_path_to_scz_file – An absolute path to a .scz file to query. logger – A Logger object for status and error reporting. memory_device – An optional MemoryDevice used to sandbox IO.
    Returns: | A pointer to a ‘C’ string with informations about the .scz file.

  static bool `CreateMemoryDevice`(char const *memory_device_name)

    Creates an in-memory virtual file device used to sandbox file IO.

    If a device is successfully created (this function returns true), `DestroyMemoryDevice` must later be called to free its memory.

    Parameters: | memory_device_name – The name of the memory device to create.
    Returns: | True if the device is newly created or false if it already existed.

  static bool `DestroyMemoryDevice`(char const *memory_device_name)

    Destroys an in-memory virtual file device created by `CreateMemoryDevice`.

    Parameters: | memory_device_name – The name of the memory device to destroy.
    Returns: | True if the device existed or false if no such device existed to prior to this call.

  static MemoryDevice *`GetMemoryDevice`(char const *memory_device_name)

    Returns the memory device created for the input name. If no device exists for that name then null is returned.

    Pointers returned by this function become dangling after any call to `DestroyMemoryDevice` for the given input name. A dangling pointer must never be used again. (It should not be dereferenced or passed to any of our APIs.) Doing otherwise has the same risks of using any dangling pointer in C++.

    Returns: | The memory device if it exists or null if it does not.

  static size_t `GetMemoryDeviceNames`(char const **memory_device_name_buffer, size_t capacity)

    Returns the names of existing memory devices. The returned name pointers are only valid until after `CreateMemoryDevice` or `DestroyMemoryDevice` are called.

    Parameters: | memory_device_name_buffer – The buffer to be populated with memory device names. capacity – The max capacity of the input buffer.
    Returns: | The number of devices in existence.

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