acl
3.5.3.0
hspool.hpp
浏览该文件的文档.
1
#pragma once
2
#include "../acl_cpp_define.hpp"
3
#include "../stdlib/noncopyable.hpp"
4
#include <list>
5
6
#ifndef ACL_CLIENT_ONLY
7
8
struct
ACL_HTABLE
;
9
10
namespace
acl
{
11
12
class
hsclient;
13
class
locker;
14
15
class
ACL_CPP_API
hspool
:
public
noncopyable
16
{
17
public
:
18
/**
19
* 构造函数
20
* @param addr_rw {const char*} handlersocket 插件在 Mysql 上的监听地址,
21
* 格式为:ip:port,注:该地址是 handlersocket 的读写地址
22
* @param addr_rd {const char*} handlersocket 插件在 Mysql 上的监听地址,
23
* 格式为:ip:port,注:该地址是 handlersocket 的只读地址
24
* @param cache_enable {bool} 是否内部自动启用行对象缓存机制
25
* @param retry_enable {bool} 当因为网络原因而出错时是否需要进行重试
26
*/
27
hspool
(
const
char
* addr_rw,
const
char
* addr_rd = NULL,
28
bool
cache_enable =
true
,
bool
retry_enable =
true
);
29
30
~
hspool
();
31
32
/**
33
* 从连接池中获得连接对象
34
* @param dbn {const char*} 数据库名称
35
* @param tbl {const char*} 数据库表名
36
* @param idx {const char*} 索引字段名
37
* @param flds {const char*} 要打开的数据字段名集合,格式为
38
* 由分隔符 ",; \t" 分隔的字段名称,如:user_id,user_name,user_mail
39
* @param readonly {bool} 是否仅以只读方式打开
40
*/
41
hsclient
* peek(
const
char
* dbn,
const
char
* tbl,
42
const
char
* idx,
const
char
* flds,
bool
readonly =
false
);
43
44
/**
45
* 归还连接对象
46
* @param client {hsclient*}
47
*/
48
void
put(
hsclient
* client);
49
private
:
50
char
* addr_rw_;
51
char
* addr_rd_;
52
bool
cache_enable_;
53
bool
retry_enable_;
54
std::list<hsclient*> pool_;
55
locker
* locker_;
56
};
57
58
}
// namespace acl
59
60
#endif // ACL_CLIENT_ONLY
acl::locker
Definition:
locker.hpp:22
acl
Definition:
acl_cpp_init.hpp:4
acl::noncopyable
Definition:
noncopyable.hpp:6
acl::hsclient
Definition:
hsclient.hpp:19
ACL_HTABLE
Definition:
acl_htable.h:21
acl::hspool
Definition:
hspool.hpp:15
ACL_CPP_API
#define ACL_CPP_API
Definition:
acl_cpp_define.hpp:16
include
acl_cpp
hsocket
hspool.hpp
生成于 2021年 九月 10日 星期五 11:14:44 , 为 acl使用
1.8.15