#pragma once #include "../acl_cpp_define.hpp" #include #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 dbs_; }; } // namespace acl #endif // !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)