acl  3.5.3.0
mysql_conf.hpp
浏览该文件的文档.
1 #pragma once
2 #include "../acl_cpp_define.hpp"
3 
4 #if !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
5 
6 namespace acl {
7 
9 {
10 public:
11  /**
12  * 构造函数
13  * @param dbaddr {const char*} 数据库连接地址,可以为 TCP 套接口或
14  * UNIX 域套接口,当为 TCP 套接口时,地址格式为:ip:port, 当为 UNIX
15  * 域套接口时,地址格式:/xxx/xxx/xxx.sock
16  * @param dbname {const char*} 数据库名
17  */
18  mysql_conf(const char* dbaddr, const char* dbname);
19 
20  /**
21  * 拷贝构造函数
22  * @param conf {const mysql_conf&} 内部创建新对象同时拷贝输入对象内容
23  */
24  mysql_conf(const mysql_conf& conf);
25 
26  ~mysql_conf();
27 
28  /**
29  * 设置连接数据库时的用户账号
30  * @param dbuser {const char*} 当为非空字符串时指定用户账号
31  * @return {mysql_conf&}
32  */
33  mysql_conf& set_dbuser(const char* dbuser);
34 
35  /**
36  * 设置连接数据库时的账号密码
37  * @param dbpass {const char*} 当为非空字符串时指定账号密码
38  * @return {mysql_conf&}
39  */
40  mysql_conf& set_dbpass(const char* dbpass);
41 
42  /**
43  * 设置数据库连接池最大连接上限
44  * @param dblimit {size_t} 连接池最大连接数限制,当为 0 时则不限制
45  * @return {mysql_conf&}
46  */
47  mysql_conf& set_dblimit(size_t dblimit);
48 
49  /**
50  * 设置 mysql 数据库的一些特殊标志位
51  * @param dbflags {unsigned long}
52  * @return {mysql_conf&}
53  */
54  mysql_conf& set_dbflags(unsigned long dbflags);
55 
56  /**
57  * 设置当修改数据库内容时是否允许自动提交,默认为自动提交
58  * @param on {bool}
59  * @return {mysql_conf&}
60  */
61  mysql_conf& set_auto_commit(bool on);
62 
63  /**
64  * 设置连接数据库的超时时间
65  * @param timeout {int}
66  * @return {mysql_conf&}
67  */
68  mysql_conf& set_conn_timeout(int timeout);
69 
70  /**
71  * 设置读取数据库结果的超时时间
72  * @param timeout {int}
73  * @return {mysql_conf&}
74  */
75  mysql_conf& set_rw_timeout(int timeout);
76 
77  /**
78  * 设置数据库连接的字符集
79  * @param charset {const char*}
80  * @return {mysql_conf&}
81  */
82  mysql_conf& set_charset(const char* charset);
83 
84  const char* get_dbaddr() const
85  {
86  return dbaddr_;
87  }
88 
89  const char* get_dbname() const
90  {
91  return dbname_;
92  }
93 
94  const char* get_dbkey() const
95  {
96  return dbkey_;
97  }
98 
99  const char* get_dbuser() const
100  {
101  return dbuser_;
102  }
103 
104  const char* get_dbpass() const
105  {
106  return dbpass_;
107  }
108 
109  size_t get_dblimit() const
110  {
111  return dblimit_;
112  }
113 
114  unsigned long get_dbflags() const
115  {
116  return dbflags_;
117  }
118 
119  bool get_auto_commit() const
120  {
121  return auto_commit_;
122  }
123 
124  int get_conn_timeout() const
125  {
126  return conn_timeout_;
127  }
128 
129  int get_rw_timeout() const
130  {
131  return rw_timeout_;
132  }
133 
134  const char* get_charset() const
135  {
136  return charset_;
137  }
138 
139 private:
140  char* dbaddr_; // 数据库监听地址
141  char* dbname_; // 数据库名
142  char* dbkey_; // dbname@dbaddr
143  char* dbuser_; // 数据库账号
144  char* dbpass_; // 数据库账号密码
145  char* charset_; // 连接数据库时的字符集
146  size_t dblimit_; // 数据库连接池连接数上限
147  unsigned long dbflags_; // 打开数据库时的标志位
148  bool auto_commit_; // 是否自动提交修改后的数据
149  int conn_timeout_; // 连接数据库的超时时间
150  int rw_timeout_; // 与数据库通信的超时时间
151 };
152 
153 } // namespace acl
154 
155 #endif // !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
bool get_auto_commit() const
Definition: mysql_conf.hpp:119
const char * get_charset() const
Definition: mysql_conf.hpp:134
unsigned long get_dbflags() const
Definition: mysql_conf.hpp:114
const char * get_dbname() const
Definition: mysql_conf.hpp:89
const char * get_dbkey() const
Definition: mysql_conf.hpp:94
int get_rw_timeout() const
Definition: mysql_conf.hpp:129
const char * get_dbpass() const
Definition: mysql_conf.hpp:104
const char * get_dbuser() const
Definition: mysql_conf.hpp:99
size_t get_dblimit() const
Definition: mysql_conf.hpp:109
#define ACL_CPP_API
const char * get_dbaddr() const
Definition: mysql_conf.hpp:84
int get_conn_timeout() const
Definition: mysql_conf.hpp:124