NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
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
161struct NEFORCE_API http_session : istringify<http_session> {
162 string id;
167 bool is_new = true;
168 bool invalidated = false;
169
178 NEFORCE_NODISCARD string& operator[](const string& key);
179
185 NEFORCE_NODISCARD string_view get(const string& key) const;
186
192 void set(const string& key, string value);
193
199 bool remove(const string& key);
200
204 void clear();
205
211 NEFORCE_NODISCARD bool contains(const string& key) const noexcept;
212
219 void invalidate() noexcept;
220
227 void touch() noexcept;
228
237 NEFORCE_NODISCARD bool is_valid() const noexcept;
238
244 NEFORCE_NODISCARD bool expired(seconds max_inactive = 0_s) const noexcept;
245
250 NEFORCE_NODISCARD seconds age() const noexcept { return seconds{datetime::now() - create_time}; }
251
256 NEFORCE_NODISCARD seconds idle_time() const noexcept { return seconds{datetime::now() - last_access}; }
257
262 NEFORCE_NODISCARD string to_string() const;
263};
264 // HTTP
266
267NEFORCE_END_HTTP__
268NEFORCE_END_NAMESPACE__
269#endif // NEFORCE_NETWORK_HTTP_HTTP_SESSION_HPP__
日期时间类
static NEFORCE_NODISCARD datetime now() noexcept
获取当前本地时间
无序映射容器
日期时间处理库
持续时间类型
duration< int64_t > seconds
秒持续时间
basic_string_view< char > string_view
字符字符串视图
HTTP协议常量定义
HTTP会话结构
void invalidate() noexcept
无效化会话
datetime create_time
创建时间
bool invalidated
是否已无效化
datetime last_access
最后访问时间
NEFORCE_NODISCARD seconds age() const noexcept
获取会话年龄
NEFORCE_NODISCARD seconds idle_time() const noexcept
获取空闲时间
NEFORCE_NODISCARD bool expired(seconds max_inactive=0_s) const noexcept
检查会话是否已过期
string id
会话唯一标识符
void set(const string &key, string value)
设置值
NEFORCE_NODISCARD string & operator[](const string &key)
下标操作符
bool remove(const string &key)
删除键值对
void touch() noexcept
更新最后访问时间
seconds max_age
最大空闲时间,默认30分钟
bool is_new
是否为新创建的会话
NEFORCE_NODISCARD bool contains(const string &key) const noexcept
检查是否包含键
unordered_map< string, string > data
会话数据存储
void clear()
清空所有会话数据
NEFORCE_NODISCARD string to_string() const
序列化为字符串
NEFORCE_NODISCARD bool is_valid() const noexcept
检查会话是否有效
NEFORCE_NODISCARD string_view get(const string &key) const
获取值
可解析对象接口
可字符串化接口
无序映射容器