acl  3.5.3.0
pgsql_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 pgsql_conf;
12 
14 {
15 public:
16  pgsql_manager(time_t idle_ttl = 120);
17  ~pgsql_manager();
18 
19  /**
20  * 添加一个数据库实例方法二
21  * @param conf {const pgsql_conf&}
22  * @return {pgsql_manager&}
23  */
24  pgsql_manager& add(const pgsql_conf& conf);
25 
26 protected:
27  /**
28  * 基类 connect_manager 虚函数的实现
29  * @param addr {const char*} 服务器监听地址,格式:ip:port
30  * @param count {size_t} 连接池的大小限制,该值为 0 时则没有限制
31  * @param idx {size_t} 该连接池对象在集合中的下标位置(从 0 开始)
32  * @return {connect_pool*} 返回创建的连接池对象
33  */
34  connect_pool* create_pool(const char* addr, size_t count, size_t idx);
35 
36 private:
37  time_t idle_ttl_; // 数据库连接的空闲过期时间
38  std::map<string, pgsql_conf*> dbs_;
39 };
40 
41 } // namespace acl
42 
43 #endif // !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
#define ACL_CPP_API