acl/lib_acl_cpp/include/acl_cpp/db/mysql_conf.hpp
2015-10-25 14:15:07 +08:00

92 lines
1.8 KiB
C++

#pragma once
#include "acl_cpp/acl_cpp_define.hpp"
namespace acl {
class ACL_CPP_API mysql_conf
{
public:
mysql_conf(const char* dbaddr, const char* dbname);
mysql_conf(const mysql_conf& conf);
~mysql_conf();
mysql_conf& set_dbuser(const char* dbuser);
mysql_conf& set_dbpass(const char* dbpass);
mysql_conf& set_dblimit(size_t dblimit);
mysql_conf& set_dbflags(unsigned long dbflags);
mysql_conf& set_auto_commit(bool on);
mysql_conf& set_conn_timeout(int timeout);
mysql_conf& set_rw_timeout(int timeout);
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