|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
数据库连接池类 更多...
#include <database_pool.hpp>
类 | |
| struct | pool_config |
| 连接池配置 更多... | |
Public 成员函数 | |
| database_pool (db_type type, const db_config &config) | |
| 构造函数 | |
| database_pool (db_type type, const db_config &config, const pool_config &pool_config) | |
| 构造函数 | |
| ~database_pool () | |
| 析构函数 | |
| shared_ptr< idb_connect > | get_connect () |
| 获取通用数据库连接 | |
| shared_ptr< idb_tb_connect > | get_tb_connect () |
| 获取关系型数据库连接 | |
| shared_ptr< idb_kv_connect > | get_kv_connect () |
| 获取键值存储连接 | |
| size_t | idle_count () const noexcept |
| 获取空闲连接数 | |
| size_t | active_count () const noexcept |
| 获取活跃连接数 | |
| size_t | total_count () const noexcept |
| 获取总连接数 | |
| void | warm_up (size_t n) |
| 预热连接池 | |
| template<typename Rep, typename Period> | |
| shared_ptr< idb_connect > | get_connect_for (const duration< Rep, Period > &timeout) |
| 获取通用数据库连接(自定义超时) | |
| template<typename Rep, typename Period> | |
| shared_ptr< idb_tb_connect > | get_tb_connect_for (const duration< Rep, Period > &timeout) |
| 获取关系型数据库连接(自定义超时) | |
| template<typename Rep, typename Period> | |
| shared_ptr< idb_kv_connect > | get_kv_connect_for (const duration< Rep, Period > &timeout) |
| 获取键值存储连接(自定义超时) | |
| bool | is_running () const noexcept |
| 检查连接池是否正在运行 | |
| void | stop () |
| 停止连接池 | |
数据库连接池类
管理数据库连接的生命周期,提供连接的获取和归还功能。 内部维护一个空闲连接队列,支持多线程安全访问。
主要特性:
在文件 database_pool.hpp 第 42 行定义.
构造函数
| type | 数据库类型 |
| config | 数据库连接配置 |
在文件 database_pool.hpp 第 105 行定义.
引用了 database_pool().
被这些函数引用 database_pool() , 以及 ~database_pool().
| neforce::database_pool::database_pool | ( | db_type | type, |
| const db_config & | config, | ||
| const pool_config & | pool_config ) |
| neforce::database_pool::~database_pool | ( | ) |
|
noexcept |
| shared_ptr< idb_connect > neforce::database_pool::get_connect | ( | ) |
获取通用数据库连接
返回基类idb_connect指针,适用于不需要特定类型操作的场景。
|
inline |
获取通用数据库连接(自定义超时)
| Rep | 时长表示类型 |
| Period | 时长周期类型 |
| timeout | 获取超时时间 |
在文件 database_pool.hpp 第 188 行定义.
引用了 get_connect_for() , 以及 timeout.
被这些函数引用 get_connect_for().
| shared_ptr< idb_kv_connect > neforce::database_pool::get_kv_connect | ( | ) |
获取键值存储连接
返回idb_kv_connect指针,支持键值操作。
|
inline |
获取键值存储连接(自定义超时)
| Rep | 时长表示类型 |
| Period | 时长周期类型 |
| timeout | 获取超时时间 |
在文件 database_pool.hpp 第 212 行定义.
引用了 timeout.
| shared_ptr< idb_tb_connect > neforce::database_pool::get_tb_connect | ( | ) |
获取关系型数据库连接
返回idb_tb_connect指针,支持SQL查询操作。
|
inline |
获取关系型数据库连接(自定义超时)
| Rep | 时长表示类型 |
| Period | 时长周期类型 |
| timeout | 获取超时时间 |
在文件 database_pool.hpp 第 200 行定义.
引用了 timeout.
|
noexcept |
获取空闲连接数
|
inlinenoexcept |
| void neforce::database_pool::stop | ( | ) |
停止连接池
停止所有后台线程,等待当前使用中的连接归还后释放资源。
|
noexcept |
| void neforce::database_pool::warm_up | ( | size_t | n | ) |