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 |