Sparksee 6.1.0
Sparksee Class Reference

Sparksee class. More...

#include <Sparksee.h>

Inheritance diagram for Sparksee:
Inheritance graph
Collaboration diagram for Sparksee:
Collaboration graph

Public Member Functions

 Sparksee (SparkseeConfig &config)
 Creates a new instance.
virtual ~Sparksee ()
 Destructor.
Database * Create (const std::wstring &path, const std::wstring &alias) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Creates a new Database instance.
Database * Create (const std::wstring &path, const std::wstring &alias, const SparkseeConfig &config) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Creates a new Database instance.
Database * Open (const std::wstring &path, bool_t readOnly) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Opens an existing Database instance.
Database * Open (const std::wstring &path, bool_t readOnly, const SparkseeConfig &config) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Opens an existing Database instance.
Database * Restore (const std::wstring &path, const std::wstring &backupFile) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Restores a Database from a backup file.
Database * Restore (const std::wstring &path, const std::wstring &backupFile, const SparkseeConfig &config) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Restores a Database from a backup file.
Database * RestoreEncryptedBackup (const std::wstring &path, const std::wstring &backupFile, const std::wstring &keyInHex, const std::wstring &ivInHex) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Restores a Database from an encrypted backup file.
Database * RestoreEncryptedBackup (const std::wstring &path, const std::wstring &backupFile, const SparkseeConfig &config, const std::wstring &keyInHex, const std::wstring &ivInHex) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Restores a Database from an encrypted backup file.
bool_t VerifyChecksums (const std::wstring &path) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Verifies the Checksum integrity of the given image file and it's recovery log file.
bool_t AddChecksums (const std::wstring &path) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Converts a database WITHOUT checksums into a database WITH checksums.
bool_t RemoveChecksums (const std::wstring &path) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Converts a database WITH checksums into a database WITHOUT checksums.
void SetUnrecoverableErrorCallback (SPARKSEE_UNRECOVERABLE_ERR_CALLBACK callback)
 Sets the unrecoverable error callback.
bool_t Encrypt (const std::wstring &path) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Converts a database WITHOUT encryption into an encrypted database.
bool_t Decrypt (const std::wstring &path) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Converts a database WITH encryption into a database WITHOUT encryption.
void ResizeInMemoryPool (int64_t newCapacity) throw (sparksee::gdb::SystemError)
 Resizes the in memory pool allocator.
int64_t GetInMemoryPoolCapacity ()
 Gets the capacity of the in-memory pool (in Megabytes).
void RebuildDatabase (const std::wstring &path, const SparkseeConfig &config, const bool_t minimizeDisk) throw (sparksee::gdb::FileNotFoundException, sparksee::gdb::Error)
 Rebuild the database from scratch with the same data.

Static Public Attributes

static const std::wstring Version
 Sparksee version.

Detailed Description

Sparksee class.

All Sparksee programs must have one single Sparksee instance to manage one or more Database instances.

This class allows for the creation of new Databases or open an existing one.

Author
Sparsity Technologies http://www.sparsity-technologies.com

Constructor & Destructor Documentation

◆ Sparksee()

Sparksee::Sparksee ( SparkseeConfig & config)

Creates a new instance.

Parameters
config[in/out] Sparksee configuration (may be updated).

Referenced by RebuildDatabase().

Member Function Documentation

◆ AddChecksums()

bool_t Sparksee::AddChecksums ( const std::wstring & path)
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Converts a database WITHOUT checksums into a database WITH checksums.

Any error found is logged.

Precondition
The database (and it's recovery log if present) does NOT have checksums.
Parameters
pathThe path to the database image file
Returns
Returns true if the checksum could be added or false otherwise.
Exceptions
sparksee::gdb::FileNotFoundException
sparksee::gdb::Error

◆ Create() [1/2]

Database * Sparksee::Create ( const std::wstring & path,
const std::wstring & alias )
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Creates a new Database instance.

Parameters
path[in] Database storage file.
alias[in] Database alias name.
Returns
A Database instance.
Exceptions
FileNotFoundExceptionIf the given file cannot be created.
Errorfor other issues.

◆ Create() [2/2]

Database * Sparksee::Create ( const std::wstring & path,
const std::wstring & alias,
const SparkseeConfig & config )
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Creates a new Database instance.

Parameters
path[in] Database storage file.
alias[in] Database alias name.
config[in] Use a specific configuration instead of the one in this Sparksee
Returns
A Database instance.
Exceptions
FileNotFoundExceptionIf the given file cannot be created.
Errorfor other issues.

◆ Decrypt()

bool_t Sparksee::Decrypt ( const std::wstring & path)
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Converts a database WITH encryption into a database WITHOUT encryption.

Any error found is logged.

Precondition
The database (and it's recovery log if present) is encrypted.
The current encryption had been configured using SparkseeConfig.
Parameters
pathThe path to the database image file
Returns
Returns true if the database could be unencrypted. The errors are returned with an exception.
Exceptions
sparksee::gdb::FileNotFoundException
sparksee::gdb::Error

◆ Encrypt()

bool_t Sparksee::Encrypt ( const std::wstring & path)
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Converts a database WITHOUT encryption into an encrypted database.

Any error found is logged.

Precondition
The database (and it's recovery log if present) is NOT encrypted.
The encryption had already been configured using SparkseeConfig.
Parameters
pathThe path to the database image file
Returns
Returns true if the database could be encrypted. The errors are returned with an exception.
Exceptions
sparksee::gdb::FileNotFoundException
sparksee::gdb::Error

◆ GetInMemoryPoolCapacity()

int64_t Sparksee::GetInMemoryPoolCapacity ( )

Gets the capacity of the in-memory pool (in Megabytes).

Returns
Returns the capacity of the in memory pool

◆ Open() [1/2]

Database * Sparksee::Open ( const std::wstring & path,
bool_t readOnly )
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Opens an existing Database instance.

Parameters
path[in] Database storage file.
readOnly[in] If TRUE, open Database in read-only mode.
Returns
A Database instance.
Exceptions
FileNotFoundExceptionIf the given file does not exist.
Errorfor other issues.

◆ Open() [2/2]

Database * Sparksee::Open ( const std::wstring & path,
bool_t readOnly,
const SparkseeConfig & config )
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Opens an existing Database instance.

The provided configuration will be used for all the database settings but not for the license, which must already be properly setup in this class.

Parameters
path[in] Database storage file.
readOnly[in] If TRUE, open Database in read-only mode.
config[in] Use a specific configuration instead of the one in this Sparksee
Returns
A Database instance.
Exceptions
FileNotFoundExceptionIf the given file does not exist.
Errorfor other issues.

◆ RebuildDatabase()

void Sparksee::RebuildDatabase ( const std::wstring & path,
const SparkseeConfig & config,
const bool_t minimizeDisk )
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Rebuild the database from scratch with the same data.

It will create a new database on the same file with the same data but rebuilt from scratch, so the internal OIDs may change and the storage usage may be compacted.

It's the equivalent to extract a backup of the data and restore it. This operation can take a long time and the result file should be smaller than the original if there had been data removals or the data was not loaded in the most optimal order. But the file size could also end up being slightly bigger the the original in some cases (the data creation in the database was optimal and nothing had beed removed).

WARNING: If anything goes wrong while the database is being rebuilt you may lose the database. The data should not be lost, but it may require an additional process to recover it.

To avoid data loss, the next open after a failed rebuild operation will attempt to automatically recover the database by the fastest solution available (restoring the original file, finishing the almost completed rebuild or restoring a backup).

The source database is also kept until the rebuilt database is available to reduce the recovery time after a rebuild failure and avoid data loss risks. But if reducing the temporary disk usage is more important, you can use the minimizeDisk to delete it as soon as possible instead.

The final rebuilt database size will be the same whether you use the minimizeDisk argument or not.

Parameters
path[In] The Sparksee database to rebuild.
config[in] Use a specific configuration instead of the one in this Sparksee.
minimizeDisk[in] Use less temporary disk space.

References Sparksee().

◆ RemoveChecksums()

bool_t Sparksee::RemoveChecksums ( const std::wstring & path)
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Converts a database WITH checksums into a database WITHOUT checksums.

Any error found is logged.

Precondition
The database (and it's recovery log if present) have checksums.
Parameters
pathThe path to the database image file
Returns
Returns true if the checksum could be removed. The errors are returned with an exception.
Exceptions
sparksee::gdb::FileNotFoundException
sparksee::gdb::Error

◆ ResizeInMemoryPool()

void Sparksee::ResizeInMemoryPool ( int64_t newCapacity)
throw (sparksee::gdb::SystemError )

Resizes the in memory pool allocator.

Parameters
newCapacityThe new capacity of the in memory pool allocator
Returns
Returns true if was successful
Exceptions
sparksee::gdb::SystemError

◆ Restore() [1/2]

Database * Sparksee::Restore ( const std::wstring & path,
const std::wstring & backupFile )
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Restores a Database from a backup file.

See the Graph class Backup method.

Parameters
path[in] Database storage file.
backupFile[in] The Backup file to be restored.
Returns
A Database instance.
Exceptions
FileNotFoundExceptionIf the given file cannot be created, or the exported data file does not exists.
Errorfor other issues.

◆ Restore() [2/2]

Database * Sparksee::Restore ( const std::wstring & path,
const std::wstring & backupFile,
const SparkseeConfig & config )
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Restores a Database from a backup file.

See the Graph class Backup method.

Parameters
path[in] Database storage file.
backupFile[in] The Backup file to be restored.
config[in] Use a specific configuration instead of the one in this Sparksee
Returns
A Database instance.
Exceptions
FileNotFoundExceptionIf the given file cannot be created, or the exported data file does not exists.
Errorfor other issues.

◆ RestoreEncryptedBackup() [1/2]

Database * Sparksee::RestoreEncryptedBackup ( const std::wstring & path,
const std::wstring & backupFile,
const SparkseeConfig & config,
const std::wstring & keyInHex,
const std::wstring & ivInHex )
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Restores a Database from an encrypted backup file.

See the Graph class EncryptedBackup method.

Parameters
path[in] Database storage file.
backupFile[in] The Backup file to be restored.
config[in] Use a specific configuration instead of the one in this Sparksee
keyInHex[In] The AES encryption Key of the backup file as an hexadecimal string (8, 16 or 32 bytes).
ivInHex[In] The AES Initialization Vector of the backup file as an hexadecimal string (16 bytes).
Returns
A Database instance.
Exceptions
FileNotFoundExceptionIf the given file cannot be created, or the exported data file does not exists.
Errorfor other issues.

◆ RestoreEncryptedBackup() [2/2]

Database * Sparksee::RestoreEncryptedBackup ( const std::wstring & path,
const std::wstring & backupFile,
const std::wstring & keyInHex,
const std::wstring & ivInHex )
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Restores a Database from an encrypted backup file.

See the Graph class EncryptedBackup method.

Parameters
path[in] Database storage file.
backupFile[in] The Backup file to be restored.
keyInHex[In] The AES encryption Key of the backup file as an hexadecimal string (8, 16 or 32 bytes).
ivInHex[In] The AES Initialization Vector of the backup file as an hexadecimal string (16 bytes).
Returns
A Database instance.
Exceptions
FileNotFoundExceptionIf the given file cannot be created, or the exported data file does not exists.
Errorfor other issues.

◆ SetUnrecoverableErrorCallback()

void Sparksee::SetUnrecoverableErrorCallback ( SPARKSEE_UNRECOVERABLE_ERR_CALLBACK callback)

Sets the unrecoverable error callback.

Parameters
callbackThe unrecoverable error callback to set

◆ VerifyChecksums()

bool_t Sparksee::VerifyChecksums ( const std::wstring & path)
throw (sparksee::gdb::FileNotFoundException,
sparksee::gdb::Error )

Verifies the Checksum integrity of the given image file and it's recovery log file.

The main database file checksums are always checked.

When the recovery log file exists, the recovery log file is also checked for checksum and format errors.

When the checksums of the main file or the recovery file are incorrect, the funcion returns false, in any other error it throws an exception.

Any error found is logged as a WARNING.

Parameters
pathThe path to the image file
Returns
Returns true if the checksum verification succeeded. Returns false if an invalid checksum was detected.
Exceptions
sparksee::gdb::FileNotFoundException
sparksee::gdb::Error

The documentation for this class was generated from the following file: