Database Functions

Functions to manage databases and their layers, including opening, closing, querying, saving, and deleting layers.

MTK_Database_Close()

Close database and release any memory used.

Signature
int MTK_Database_Close(MTK_Database* data);
Parameters

data: Pointer to an MTK_Database struct.

Returns

0 on success; any other value indicates failure.

MTK_Database_DeleteLayer()

Delete a layer from a database.

Signature
int MTK_Database_DeleteLayer(
    MTK_Database* data, const char* name);
Parameters
  • data: Pointer to an MTK_Database struct.

  • name: The name of the layer to delete.

Returns

0 on success; any other value indicates failure.

MTK_Database_GetLayerByIndex()

Get the layer with the specified index from a database. Allocates a new object which needs to be freed using MTK_Layer_Close.

Signature
MTK_Layer* MTK_Database_GetLayerByIndex(
    MTK_Database* data, const int& index);
Parameters
  • data: Pointer to an MTK_Database struct.

  • index: The index of the desired layer.

Returns

Pointer to an MTK_Database struct on success; otherwise a NULL pointer.

MTK_Database_GetLayerByName()

Get the layer with the specified name from a database. Allocates a new object which needs to be freed using MTK_Layer_Close .

Signature
MTK_Layer* MTK_Database_GetLayerByName(
    MTK_Database* data, const char* name);
Parameters
  • data: Pointer to an MTK_Database struct.

  • name: The name of the desired layer.

Returns

Pointer to an MTK_Database struct on success; otherwise a NULL pointer.

MTK_Database_GetLayerNameByIndex()

Get a specific layer name without loading the layer.

Signature
int MTK_Database_GetLayerNameByIndex(
    MTK_Database* data, const int& index,
    char* name
    );
Parameters
  • data: Pointer to an MTK_Database struct.

  • index: The index of the desired layer.

  • name: buffer of length MTK_BUFFER_SIZE to receive the name of desired layer.

Returns

0 on success; any other value indicates failure.

MTK_Database_GetName()

Get the name of a database.

Signature
int MTK_Database_GetName(MTK_Database* data, char* name);
Parameters
  • data: Pointer to an MTK_Database struct.

  • index: The index of the desired layer.

  • name: buffer of length MTK_BUFFER_SIZE to receive the database name.

Returns

0 on success; any other value indicates failure.

MTK_Database_IsOpen()

Query current database state.

Signature
int MTK_Database_IsOpen(MTK_Database* data);
Parameters

data: Pointer to an MTK_Database struct.

Returns
  • 1: The database is open.
  • 0: The database is closed.
  • Any other value: Failure

MTK_Database_LayerExists()

Find if a specific layer exists in a database.

Signature
int MTK_Database_LayerExists(MTK_Database* data, const char* name);
Parameters
  • data: Pointer to an MTK_Database struct.

  • name: The name of the layer.

Returns
  • 1: The layer exists.
  • 0: The layer does not exist.
  • Any other value: Failure

MTK_Database_NLayers()

Get the number of layers in a database.

Signature
int MTK_Database_NLayers(MTK_Database* data);
Parameters

data: Pointer to an MTK_Database struct.

Returns
  • int: The number of layers in the database.
  • -1: Failure

MTK_Database_Open()

Open database file.

Signature
MTK_Database* MTK_Database_Open(
    const char* name, MTK_Database_OpenMode mode);
Parameters
  • name: The database filename.

  • mode: File open mode, one of the following enum values:

    enum MTK_Database_OpenMode
    {
        DESIGN_MODE_READONLY, // readonly
        DESIGN_MODE_WRITE, // read/write
        DESIGN_MODE_CREATEIF, // read/write create if doesn't exist
        DESIGN_MODE_CREATE // read/write create even if exists
    };
Returns

Pointer to an MTK_Database struct on success; otherwise a NULL pointer.

MTK_Database_SaveLayer()

Save a layer in a database.

Signature
int MTK_Database_SaveLayer(
    MTK_Database* data,
    MTK_Layer* layer);
Parameters
  • data: Pointer to an MTK_Database struct.

  • layer: Pointer to an MTK_Layer struct.

Returns

0 on success; any other value indicates failure.

MTK_Database_SaveLayerAs()

Save a layer in a database as a selected name.

Signature
int MTK_Database_SaveLayerAs(
    MTK_Database* data,
    MTK_Layer* layer,
    const char* name
    );
Parameters
  • data: Pointer to an MTK_Database struct.

  • layer: Pointer to an MTK_Layer struct.

  • name: Desired name of the layer.

Returns

0 on success; any other value indicates failure.