liarsdice::database::ConnectionManager class

Singleton connection manager with lazy initialization.

Manages database connection pools and provides thread-safe access to database connections using Boost.Asio for async operations.

Public static functions

static auto instance() -> ConnectionManager&
Get singleton instance.

Public functions

void configure(const ConnectionPool::PoolConfig& config = ConnectionPool::PoolConfig())
Initialize the connection manager.
auto acquire_connection(std::chrono::milliseconds timeout = std::chrono::milliseconds(5000)) -> ConnectionPool::PooledConnection
Acquire a database connection.
auto get_pool_stats() const -> ConnectionPool::PoolStats
Get connection pool statistics.
template<typename Func>
auto execute_transaction(Func func, std::chrono::milliseconds timeout_ms = std::chrono::milliseconds(30000)) -> boost::system::error_code
Execute a transaction with automatic rollback on failure and timeout.
template<typename Func>
auto with_connection(Func func) -> auto
Execute a function with a connection.
void shutdown()
Shutdown the connection manager.
auto is_initialized() const -> bool
Check if manager is initialized.
auto get_io_context() -> boost::asio::io_context&
Get the IO context for async operations.
void set_pool_size(size_t min_size, size_t max_size)
Set connection pool size limits.
void set_health_checks_enabled(bool enable)
Enable or disable health checks.

Function documentation

static ConnectionManager& liarsdice::database::ConnectionManager::instance()

Get singleton instance.

Returns Reference to connection manager

void liarsdice::database::ConnectionManager::configure(const ConnectionPool::PoolConfig& config = ConnectionPool::PoolConfig())

Initialize the connection manager.

Parameters
config Optional pool configuration

ConnectionPool::PooledConnection liarsdice::database::ConnectionManager::acquire_connection(std::chrono::milliseconds timeout = std::chrono::milliseconds(5000))

Acquire a database connection.

Parameters
timeout Maximum time to wait
Returns Pooled connection handle

ConnectionPool::PoolStats liarsdice::database::ConnectionManager::get_pool_stats() const

Get connection pool statistics.

Returns Pool statistics

template<typename Func>
boost::system::error_code liarsdice::database::ConnectionManager::execute_transaction(Func func, std::chrono::milliseconds timeout_ms = std::chrono::milliseconds(30000))

Execute a transaction with automatic rollback on failure and timeout.

Parameters
func Function to execute within transaction
timeout_ms Maximum time in milliseconds (default: 30 seconds)
Returns Error code if transaction failed

template<typename Func>
auto liarsdice::database::ConnectionManager::with_connection(Func func)

Execute a function with a connection.

Parameters
func Function to execute
Returns Result of function

bool liarsdice::database::ConnectionManager::is_initialized() const

Check if manager is initialized.

Returns true if initialized

boost::asio::io_context& liarsdice::database::ConnectionManager::get_io_context()

Get the IO context for async operations.

Returns Reference to io_context

void liarsdice::database::ConnectionManager::set_pool_size(size_t min_size, size_t max_size)

Set connection pool size limits.

Parameters
min_size Minimum connections
max_size Maximum connections

void liarsdice::database::ConnectionManager::set_health_checks_enabled(bool enable)

Enable or disable health checks.

Parameters
enable true to enable health checks