liarsdice::database::ConnectionPool class

Thread-safe database connection pool.

Manages a pool of database connections with automatic connection recycling, health monitoring, and size management.

Public types

struct PoolConfig
class PooledConnection
Connection wrapper for automatic return to pool.
struct PoolStats
Get current pool statistics.
using ConnectionPtr = std::shared_ptr<DatabaseConnection>
using ConnectionDeleter = std::function<void(DatabaseConnection*)>

Constructors, destructors, conversion operators

ConnectionPool(boost::asio::io_context& io_context, const std::string& connection_string, const PoolConfig& config = PoolConfig())
Constructor.
~ConnectionPool()
Destructor - closes all connections.

Public functions

auto acquire(std::chrono::milliseconds timeout = std::chrono::milliseconds(5000)) -> PooledConnection
Acquire a connection from the pool.
auto get_stats() const -> PoolStats
void shutdown()
Shutdown the connection pool.
void set_min_size(size_t size)
Set minimum pool size.

Function documentation

liarsdice::database::ConnectionPool::ConnectionPool(boost::asio::io_context& io_context, const std::string& connection_string, const PoolConfig& config = PoolConfig())

Constructor.

Parameters
io_context Boost.Asio context for timers
connection_string Database connection string
config Pool configuration

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

Acquire a connection from the pool.

Parameters
timeout Maximum time to wait for connection
Returns Pooled connection that auto-returns on destruction

void liarsdice::database::ConnectionPool::set_min_size(size_t size)

Set minimum pool size.

Parameters
size Minimum number of connections