mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-14 00:40:55 +08:00
48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
#pragma once
|
||
#include "acl_cpp/acl_cpp_define.hpp"
|
||
#include "acl_cpp/db/db_pool.hpp"
|
||
|
||
namespace acl {
|
||
|
||
class db_handle;
|
||
|
||
class ACL_CPP_API mysql_pool : public db_pool
|
||
{
|
||
public:
|
||
/**
|
||
* 采用 mysql 数据库时的构造函数
|
||
* @param dbaddr {const char*} mysql 服务器地址,格式:IP:PORT,
|
||
* 在 UNIX 平台下可以为 UNIX 域套接口
|
||
* @param dbname {const char*} 数据库名
|
||
* @param dbuser {const char*} 数据库用户
|
||
* @param dbpass {const char*} 数据库用户密码
|
||
* @param dblimit {size_t} 数据库连接池的最大连接数限制
|
||
* @param dbflags {unsigned long} mysql 标记位
|
||
* @param auto_commit {bool} 是否自动提交
|
||
* @param conn_timeout {int} 连接数据库超时时间(秒)
|
||
* @param rw_timeout {int} 与数据库通信时的IO时间(秒)
|
||
*/
|
||
mysql_pool(const char* dbaddr, const char* dbname,
|
||
const char* dbuser, const char* dbpass,
|
||
size_t dblimit = 64, unsigned long dbflags = 0,
|
||
bool auto_commit = true, int conn_timeout = 60,
|
||
int rw_timeout = 60);
|
||
~mysql_pool();
|
||
|
||
protected:
|
||
// 基类 connect_pool 纯虚函数:创建数据库连接句柄
|
||
connect_client* create_connect();
|
||
|
||
private:
|
||
char* dbaddr_; // 数据库监听地址
|
||
char* dbname_; // 数据库名
|
||
char* dbuser_; // 数据库账号
|
||
char* dbpass_; // 数据库账号密码
|
||
unsigned long dbflags_;
|
||
bool auto_commit_; // 是否自动提交修改后的数据
|
||
int conn_timeout_; // 连接数据库的超时时间
|
||
int rw_timeout_; // 与数据库通信的超时时间
|
||
};
|
||
|
||
} // namespace acl
|