acl
3.5.3.0
memcache_session.hpp
浏览该文件的文档.
1
#pragma once
2
#include "../acl_cpp_define.hpp"
3
#include "
session.hpp
"
4
5
#ifndef ACL_CLIENT_ONLY
6
7
namespace
acl
{
8
9
class
memcache;
10
11
/**
12
* session 类,该类使用 memcached 存储 session 数据
13
*/
14
class
ACL_CPP_API
memcache_session
:
public
session
15
{
16
public
:
17
/**
18
* 构造函数
19
* @param cache_addr {const char*} memcached 服务地址,格式:
20
* IP:PORT,不能为空
21
* @param prefix {const char*} 在 memcached 存储的键值的前缀
22
* @param conn_timeout {int} 连接 memcached 的超时时间(秒)
23
* @param rw_timeout {int} 与 memcached 通讯的 IO 超时时间(秒)
24
* @param ttl {time_t} 生存周期(秒)
25
* @param sid {const char*} session 对应的 sid,当为空时,内部
26
* 会自动生成一个,其它说明请参考基类 session 的说明
27
* @param encode_key {bool} 是否对存储于 memcached 的键值进行编码
28
*/
29
memcache_session
(
const
char
* cache_addr,
int
conn_timeout = 180,
30
int
rw_timeout = 300,
const
char
* prefix = NULL,
31
time_t ttl = 0,
const
char
* sid = NULL,
bool
encode_key =
true
);
32
33
/**
34
* 以输入的 memcached 的连接对象为参数的构造函数
35
* @param cache {memcache*} 输入的 memcached 连接对象
36
* @param auto_free {bool} 当该参数为 true 时,则要求该
37
* memcached_session 对象析构函数中释放传入的 cache 对象;
38
* 否则则禁止在 memcached_session 的析构函数中释放 cache 对象
39
* @param ttl {time_t} 生存周期(秒)
40
* @param sid {const char*} session 对应的 sid,当为空时,内部
41
* 会自动生成一个,其它说明请参考基类 session 的说明
42
*/
43
memcache_session
(
memcache
* cache,
bool
auto_free =
false
,
44
time_t ttl = 0,
const
char
* sid = NULL);
45
46
~
memcache_session
(
void
);
47
48
// 基类纯虚函数,从 memcached 中获得数据
49
bool
get_attrs(std::map<string, session_string>& attrs);
50
51
// 基类纯虚函数,向 memcached 中添加或修改数据
52
bool
set_attrs(
const
std::map<string, session_string>& attrs);
53
54
// 基类纯虚函数,从 memcached 中删除数据
55
bool
remove();
56
57
protected
:
58
//重新设置 session 在 memcached 上的缓存时间
59
bool
set_timeout(time_t ttl);
60
61
private
:
62
memcache
* cache_;
63
bool
auto_free_;
64
};
65
66
}
// namespace acl
67
68
#endif // ACL_CLIENT_ONLY
session.hpp
acl
Definition:
acl_cpp_init.hpp:4
acl::session
Definition:
session.hpp:38
acl::memcache_session
Definition:
memcache_session.hpp:14
ACL_CPP_API
#define ACL_CPP_API
Definition:
acl_cpp_define.hpp:16
acl::memcache
Definition:
memcache.hpp:19
include
acl_cpp
session
memcache_session.hpp
生成于 2021年 九月 10日 星期五 11:14:44 , 为 acl使用
1.8.15