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 |