liarsdice::database::DatabaseManager class

Core database manager with transaction support and prepared statement caching.

Public types

struct CacheStats
Get cache statistics.
using QueryCallback = std::function<void(const PreparedStatement&)>
using TransactionFunc = std::function<DatabaseResult<void>(DatabaseManager&)>

Constructors, destructors, conversion operators

DatabaseManager()
Constructor.
~DatabaseManager()
Destructor.

Public functions

auto execute(const std::string& sql) -> DatabaseResult<void>
Execute a query with automatic connection management.
auto prepare(const std::string& sql) -> DatabaseResult<std::shared_ptr<PreparedStatement>>
Prepare a statement with caching and LRU eviction.
auto execute_prepared(std::shared_ptr<PreparedStatement> stmt, QueryCallback callback = nullptr) -> DatabaseResult<int>
Execute a prepared statement.
auto begin_transaction() -> DatabaseResult<void>
Begin a transaction.
auto commit_transaction() -> DatabaseResult<void>
Commit the current transaction.
auto rollback_transaction() -> DatabaseResult<void>
Rollback the current transaction.
auto with_transaction(TransactionFunc func) -> DatabaseResult<void>
Execute a function within a transaction with automatic rollback on failure.
void clear_statement_cache()
Clear the prepared statement cache.
auto get_cache_stats() const -> CacheStats
auto in_transaction() const -> bool
Check if currently in a transaction.

Function documentation

DatabaseResult<void> liarsdice::database::DatabaseManager::execute(const std::string& sql)

Execute a query with automatic connection management.

Parameters
sql SQL query to execute
Returns Result or error

DatabaseResult<std::shared_ptr<PreparedStatement>> liarsdice::database::DatabaseManager::prepare(const std::string& sql)

Prepare a statement with caching and LRU eviction.

Parameters
sql SQL statement to prepare
Returns Prepared statement or error

DatabaseResult<int> liarsdice::database::DatabaseManager::execute_prepared(std::shared_ptr<PreparedStatement> stmt, QueryCallback callback = nullptr)

Execute a prepared statement.

Parameters
stmt Prepared statement
callback Optional callback for each row
Returns Result or error

DatabaseResult<void> liarsdice::database::DatabaseManager::begin_transaction()

Begin a transaction.

Returns Result or error

DatabaseResult<void> liarsdice::database::DatabaseManager::commit_transaction()

Commit the current transaction.

Returns Result or error

DatabaseResult<void> liarsdice::database::DatabaseManager::rollback_transaction()

Rollback the current transaction.

Returns Result or error

DatabaseResult<void> liarsdice::database::DatabaseManager::with_transaction(TransactionFunc func)

Execute a function within a transaction with automatic rollback on failure.

Parameters
func Function to execute
Returns Result or error