acl  3.5.3.0
redis_session.hpp
浏览该文件的文档.
1 #pragma once
2 #include "../acl_cpp_define.hpp"
3 #include <map>
4 #include "../stdlib/string.hpp"
5 #include "session.hpp"
6 
7 #ifndef ACL_CLIENT_ONLY
8 
9 namespace acl
10 {
11 
12 class redis;
13 class redis_client_cluster;
14 
16 {
17 public:
19  time_t ttl = 0, const char* sid = NULL);
20  ~redis_session();
21 
22  // 基类虚函数,向 redis 服务端设置哈希属性值
23  bool set(const char* name, const char* value);
24 
25  // 基类虚函数,向 redis 服务端设置哈希属性值
26  bool set(const char* name, const void* value, size_t len);
27 
28  // 基类虚函数,从 redis 服务端的哈希对象中获得对应属性的值
29  const session_string* get_buf(const char* name);
30 
31  // 基类虚函数,从 redis 服务端的哈希对象中删除某个属性值
32  bool del(const char* name);
33 
34  // 基类纯虚函数,从 redis 中删除数据
35  bool remove();
36 
37  // 基类纯虚函数,从 redis 中获得数据
38  bool get_attrs(std::map<string, session_string>& attrs);
39 
40  // 基类虚函数,从 redis 中获得数据
41  bool get_attrs(const std::vector<string>& names,
42  std::vector<session_string>& values);
43 
44  // 基类纯虚函数,向 redis 中添加或修改数据
45  bool set_attrs(const std::map<string, session_string>& attrs);
46 
47 protected:
48  //重新设置 session 在 redis 上的缓存时间
49  bool set_timeout(time_t ttl);
50 
51 private:
52  redis_client_cluster& cluster_;
53  redis* command_;
54  // size_t max_conns_;
55  std::map<string, session_string*> buffers_;
56 };
57 
58 } // namespace acl
59 
60 #endif // ACL_CLIENT_ONLY
HTTP_API void const char * name
Definition: lib_http.h:620
#define ACL_CPP_API