acl/lib_acl_cpp/include/acl_cpp/db/pgsql_manager.hpp

44 lines
1.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include "../acl_cpp_define.hpp"
#include <map>
#include "../stdlib/string.hpp"
#include "../connpool/connect_manager.hpp"
#if !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
namespace acl {
class pgsql_conf;
class ACL_CPP_API pgsql_manager : public connect_manager
{
public:
pgsql_manager(time_t idle_ttl = 120);
~pgsql_manager();
/**
* 添加一个数据库实例方法二
* @param conf {const pgsql_conf&}
* @return {pgsql_manager&}
*/
pgsql_manager& add(const pgsql_conf& conf);
protected:
/**
* 基类 connect_manager 虚函数的实现
* @param addr {const char*} 服务器监听地址格式ip:port
* @param count {size_t} 连接池的大小限制,该值为 0 时则没有限制
* @param idx {size_t} 该连接池对象在集合中的下标位置(从 0 开始)
* @return {connect_pool*} 返回创建的连接池对象
*/
connect_pool* create_pool(const char* addr, size_t count, size_t idx);
private:
time_t idle_ttl_; // 数据库连接的空闲过期时间
std::map<string, pgsql_conf*> dbs_;
};
} // namespace acl
#endif // !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)