acl
3.5.3.0
mysql_manager.hpp
浏览该文件的文档.
1
#pragma once
2
#include "../acl_cpp_define.hpp"
3
#include <map>
4
#include "../stdlib/string.hpp"
5
#include "../connpool/connect_manager.hpp"
6
7
#if !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
8
9
namespace
acl
{
10
11
class
mysql_conf;
12
13
class
ACL_CPP_API
mysql_manager
:
public
connect_manager
14
{
15
public
:
16
mysql_manager
(time_t idle_ttl = 120);
17
~
mysql_manager
();
18
19
/**
20
* 添加一个数据库实例方法一
21
* @param dbaddr {const char*} mysql 服务器地址,格式:IP:PORT,
22
* 在 UNIX 平台下可以为 UNIX 域套接口
23
* @param dbname {const char*} 数据库名
24
* @param dbuser {const char*} 数据库用户
25
* @param dbpass {const char*} 数据库用户密码
26
* @param dblimit {size_t} 数据库连接池的最大连接数限制
27
* @param dbflags {unsigned long} mysql 标记位
28
* @param auto_commit {bool} 是否自动提交
29
* @param conn_timeout {int} 连接数据库超时时间(秒)
30
* @param rw_timeout {int} 与数据库通信时的IO时间(秒)
31
* @param charset {const char*} 连接数据库时的字符集
32
* @return {mysql_manager&}
33
*/
34
mysql_manager
& add(
const
char
* dbaddr,
const
char
* dbname,
35
const
char
* dbuser,
const
char
* dbpass,
36
size_t
dblimit = 64,
unsigned
long
dbflags = 0,
37
bool
auto_commit =
true
,
int
conn_timeout = 60,
38
int
rw_timeout = 60,
const
char
* charset =
"utf8"
);
39
40
/**
41
* 添加一个数据库实例方法二
42
* @param conf {const mysql_conf&}
43
* @return {mysql_manager&}
44
*/
45
mysql_manager
& add(
const
mysql_conf
& conf);
46
47
protected
:
48
/**
49
* 基类 connect_manager 虚函数的实现
50
* @param addr {const char*} 服务器监听地址,格式:ip:port
51
* @param count {size_t} 连接池的大小限制,该值为 0 时则没有限制
52
* @param idx {size_t} 该连接池对象在集合中的下标位置(从 0 开始)
53
* @return {connect_pool*} 返回创建的连接池对象
54
*/
55
connect_pool
* create_pool(
const
char
* addr,
size_t
count,
size_t
idx);
56
57
private
:
58
time_t idle_ttl_;
// 数据库连接的空闲过期时间
59
std::map<string, mysql_conf*> dbs_;
60
};
61
62
}
// namespace acl
63
64
#endif // !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
acl::mysql_manager
Definition:
mysql_manager.hpp:13
acl
Definition:
acl_cpp_init.hpp:4
acl::connect_manager
Definition:
connect_manager.hpp:45
acl::connect_pool
Definition:
connect_pool.hpp:19
ACL_CPP_API
#define ACL_CPP_API
Definition:
acl_cpp_define.hpp:16
acl::mysql_conf
Definition:
mysql_conf.hpp:8
include
acl_cpp
db
mysql_manager.hpp
生成于 2021年 九月 10日 星期五 11:14:44 , 为 acl使用
1.8.15