mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-13 16:35:35 +08:00
156 lines
3.2 KiB
C++
156 lines
3.2 KiB
C++
#pragma once
|
||
#include "../acl_cpp_define.hpp"
|
||
|
||
#if !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
|
||
|
||
namespace acl {
|
||
|
||
class ACL_CPP_API mysql_conf
|
||
{
|
||
public:
|
||
/**
|
||
* 构造函数
|
||
* @param dbaddr {const char*} 数据库连接地址,可以为 TCP 套接口或
|
||
* UNIX 域套接口,当为 TCP 套接口时,地址格式为:ip:port, 当为 UNIX
|
||
* 域套接口时,地址格式:/xxx/xxx/xxx.sock
|
||
* @param dbname {const char*} 数据库名
|
||
*/
|
||
mysql_conf(const char* dbaddr, const char* dbname);
|
||
|
||
/**
|
||
* 拷贝构造函数
|
||
* @param conf {const mysql_conf&} 内部创建新对象同时拷贝输入对象内容
|
||
*/
|
||
mysql_conf(const mysql_conf& conf);
|
||
|
||
~mysql_conf();
|
||
|
||
/**
|
||
* 设置连接数据库时的用户账号
|
||
* @param dbuser {const char*} 当为非空字符串时指定用户账号
|
||
* @return {mysql_conf&}
|
||
*/
|
||
mysql_conf& set_dbuser(const char* dbuser);
|
||
|
||
/**
|
||
* 设置连接数据库时的账号密码
|
||
* @param dbpass {const char*} 当为非空字符串时指定账号密码
|
||
* @return {mysql_conf&}
|
||
*/
|
||
mysql_conf& set_dbpass(const char* dbpass);
|
||
|
||
/**
|
||
* 设置数据库连接池最大连接上限
|
||
* @param dblimit {size_t} 连接池最大连接数限制,当为 0 时则不限制
|
||
* @return {mysql_conf&}
|
||
*/
|
||
mysql_conf& set_dblimit(size_t dblimit);
|
||
|
||
/**
|
||
* 设置 mysql 数据库的一些特殊标志位
|
||
* @param dbflags {unsigned long}
|
||
* @return {mysql_conf&}
|
||
*/
|
||
mysql_conf& set_dbflags(unsigned long dbflags);
|
||
|
||
/**
|
||
* 设置当修改数据库内容时是否允许自动提交,默认为自动提交
|
||
* @param on {bool}
|
||
* @return {mysql_conf&}
|
||
*/
|
||
mysql_conf& set_auto_commit(bool on);
|
||
|
||
/**
|
||
* 设置连接数据库的超时时间
|
||
* @param timeout {int}
|
||
* @return {mysql_conf&}
|
||
*/
|
||
mysql_conf& set_conn_timeout(int timeout);
|
||
|
||
/**
|
||
* 设置读取数据库结果的超时时间
|
||
* @param timeout {int}
|
||
* @return {mysql_conf&}
|
||
*/
|
||
mysql_conf& set_rw_timeout(int timeout);
|
||
|
||
/**
|
||
* 设置数据库连接的字符集
|
||
* @param charset {const char*}
|
||
* @return {mysql_conf&}
|
||
*/
|
||
mysql_conf& set_charset(const char* charset);
|
||
|
||
const char* get_dbaddr() const
|
||
{
|
||
return dbaddr_;
|
||
}
|
||
|
||
const char* get_dbname() const
|
||
{
|
||
return dbname_;
|
||
}
|
||
|
||
const char* get_dbkey() const
|
||
{
|
||
return dbkey_;
|
||
}
|
||
|
||
const char* get_dbuser() const
|
||
{
|
||
return dbuser_;
|
||
}
|
||
|
||
const char* get_dbpass() const
|
||
{
|
||
return dbpass_;
|
||
}
|
||
|
||
size_t get_dblimit() const
|
||
{
|
||
return dblimit_;
|
||
}
|
||
|
||
unsigned long get_dbflags() const
|
||
{
|
||
return dbflags_;
|
||
}
|
||
|
||
bool get_auto_commit() const
|
||
{
|
||
return auto_commit_;
|
||
}
|
||
|
||
int get_conn_timeout() const
|
||
{
|
||
return conn_timeout_;
|
||
}
|
||
|
||
int get_rw_timeout() const
|
||
{
|
||
return rw_timeout_;
|
||
}
|
||
|
||
const char* get_charset() const
|
||
{
|
||
return charset_;
|
||
}
|
||
|
||
private:
|
||
char* dbaddr_; // 数据库监听地址
|
||
char* dbname_; // 数据库名
|
||
char* dbkey_; // dbname@dbaddr
|
||
char* dbuser_; // 数据库账号
|
||
char* dbpass_; // 数据库账号密码
|
||
char* charset_; // 连接数据库时的字符集
|
||
size_t dblimit_; // 数据库连接池连接数上限
|
||
unsigned long dbflags_; // 打开数据库时的标志位
|
||
bool auto_commit_; // 是否自动提交修改后的数据
|
||
int conn_timeout_; // 连接数据库的超时时间
|
||
int rw_timeout_; // 与数据库通信的超时时间
|
||
};
|
||
|
||
} // namespace acl
|
||
|
||
#endif // !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
|