NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
http_session.hpp
浏览该文件的文档.
1#ifndef NEFORCE_NETWORK_HTTP_HTTP_SESSION_HPP__
2#define NEFORCE_NETWORK_HTTP_HTTP_SESSION_HPP__
3
10
15NEFORCE_BEGIN_NAMESPACE__
16NEFORCE_BEGIN_HTTP__
17
22
62struct NEFORCE_API http_cookie : iobject<http_cookie> {
64 string value;
65 string domain;
66 string path{"/"};
68 bool secure{false};
69 bool http_only{false};
70 string same_site{http_key::Strict()};
72
80 NEFORCE_NODISCARD static http_cookie parse(string_view header);
81
91 NEFORCE_NODISCARD static http_cookie parse(string_view header, string default_domain, string default_path);
92
99 NEFORCE_NODISCARD string to_string() const;
100
105 NEFORCE_NODISCARD bool is_valid() const noexcept;
106
114 NEFORCE_NODISCARD bool is_expired() const noexcept;
115
124};
125
165struct NEFORCE_API http_session : istringify<http_session> {
166 string id;
171 bool is_new = true;
172 bool invalidated = false;
173
182 NEFORCE_NODISCARD string& operator[](const string& key);
183
189 NEFORCE_NODISCARD string_view get(const string& key) const;
190
196 void set(const string& key, string value);
197
203 bool remove(const string& key);
204
208 void clear();
209
215 NEFORCE_NODISCARD bool contains(const string& key) const noexcept;
216
223 void invalidate() noexcept;
224
231
238 void touch() noexcept;
239
248 NEFORCE_NODISCARD bool is_valid() const noexcept;
249
255 NEFORCE_NODISCARD bool expired(seconds max_inactive = 0_s) const noexcept;
256
261 NEFORCE_NODISCARD seconds age() const noexcept { return seconds{datetime::now() - create_time}; }
262
267 NEFORCE_NODISCARD seconds idle_time() const noexcept { return seconds{datetime::now() - last_access}; }
268
273 NEFORCE_NODISCARD string to_string() const;
274};
275 // HTTP
277
278NEFORCE_END_HTTP__
279NEFORCE_END_NAMESPACE__
280#endif // NEFORCE_NETWORK_HTTP_HTTP_SESSION_HPP__
日期时间类
static datetime now() noexcept
获取当前本地时间
日期时间处理库
持续时间类型
duration< int64_t > seconds
秒持续时间
basic_string_view< char > string_view
字符字符串视图
HTTP协议常量定义
void clear()
清空所有会话数据
string_view get(const string &key) const
获取值
unordered_map< string, string > data
会话数据存储
seconds age() const noexcept
获取会话年龄
string & operator[](const string &key)
下标操作符
bool remove(const string &key)
删除键值对
bool is_valid() const noexcept
检查会话是否有效
bool is_new
是否为新创建的会话
string to_string() const
序列化为字符串
bool contains(const string &key) const noexcept
检查是否包含键
string id
会话唯一标识符
void invalidate() noexcept
无效化会话
datetime last_access
最后访问时间
bool invalidated
是否已无效化
void touch() noexcept
更新最后访问时间
seconds idle_time() const noexcept
获取空闲时间
void regenerate_id()
重新生成会话ID
bool expired(seconds max_inactive=0_s) const noexcept
检查会话是否已过期
void set(const string &key, string value)
设置值
seconds max_age
最大空闲时间,默认30分钟
可解析对象接口
可字符串化接口
无序映射容器