#include <jsoncpp/json/json.h>#include <string_view>#include <string>#include <atomic>#include <iostream>#include <unistd.h>#include <sys/stat.h>#include <fstream>#include <fcntl.h>#include <sstream>#include <mutex>#include <chrono>#include <iomanip>#include <random>#include <cmath>#include <thread>#include <openssl/sha.h>#include <netdb.h>#include <arpa/inet.h>#include <sys/types.h>#include <sys/socket.h>#include <cstring>#include <openssl/bio.h>#include <openssl/evp.h>#include <openssl/buffer.h>#include <functional>#include <list>#include <queue>#include <sys/epoll.h>#include <condition_variable>#include <regex>#include <unordered_map>#include <openssl/ssl.h>#include <openssl/err.h>#include <openssl/crypto.h>#include <signal.h>#include <sys/ipc.h>#include <sys/sem.h>#include <sys/wait.h>#include <sys/shm.h>#include <type_traits>#include <charconv>#include <any>#include <sys/eventfd.h>#include <sys/timerfd.h>类 | |
| class | stt::file::FileTool |
| 提供文件操作的静态函数工具类 更多... | |
| struct | stt::file::FileThreadLock |
| 记录文件和线程关系的结构体 更多... | |
| class | stt::file::File |
| 读写磁盘文件的类 更多... | |
| struct | stt::time::Duration |
| 表示时间间隔的结构体,支持天、小时、分钟、秒和毫秒粒度。 更多... | |
| class | stt::time::DateTime |
| 时间操作、运算、计时的类 更多... | |
| class | stt::file::LogFile |
| 日志文件操作类 更多... | |
| class | stt::data::CryptoUtil |
| 负责加密,解密和哈希 更多... | |
| class | stt::data::BitUtil |
| 负责二进制数据,字符串之间的转化 更多... | |
| class | stt::data::RandomUtil |
| 随机数,字符串生成相关 更多... | |
| class | stt::data::NetworkOrderUtil |
| 负责大小端字节序转换 更多... | |
| class | stt::data::PrecisionUtil |
| 负责浮点数精度处理 更多... | |
| class | stt::data::HttpStringUtil |
| 负责Http字符串和URL解析 包括从 URL 或请求报文中提取参数、IP、端口、请求头字段等功能。 更多... | |
| class | stt::data::WebsocketStringUtil |
| 负责websocket协议有关字符串的操作 更多... | |
| class | stt::data::NumberStringConvertUtil |
| 负责字符串和数字的转化 更多... | |
| class | stt::data::EncodingUtil |
| 数据编码解码,掩码处理等 更多... | |
| class | stt::data::JsonHelper |
| json数据操作类 更多... | |
| struct | stt::security::RateState |
| 单一限流器的运行状态(可复用于多种限流策略)。 更多... | |
| struct | stt::security::ConnectionState |
| 单个连接(fd)的安全与限流状态。 更多... | |
| struct | stt::security::IPInformation |
| 单个 IP 的安全状态与连接集合。 更多... | |
| class | stt::security::ConnectionLimiter |
| 统一的连接与请求安全裁决器(IP 级 + fd 级,多策略限流 + 黑名单)。 更多... | |
| class | stt::network::TcpFDHandler |
| tcp协议的套接字操作类 更多... | |
| class | stt::network::TcpClient |
| tcp协议客户端操作类 更多... | |
| class | stt::network::HttpClient |
| Http/Https客户端操作类 更多... | |
| class | stt::network::EpollSingle |
| 用epoll监听单个句柄 更多... | |
| class | stt::network::WebSocketClient |
| Websocket客户端操作的类 -如果需要重新设置TLS/Https加密的证书,目前需要销毁对象后重新构造 底层TCP默认是阻塞的 更多... | |
| struct | stt::network::HttpRequestInformation |
| 保存HTTP/HTTPS请求信息的结构体 更多... | |
| class | stt::network::HttpServerFDHandler |
| 解析,响应Http/https请求的操作类 仅传入套接字,然后使用这个类进行Http的操作 更多... | |
| struct | stt::network::WebSocketFDInformation |
| 保存客户端WS/WSS请求信息的结构体 更多... | |
| struct | stt::network::TcpInformation |
| 保存Tcp客户端的信息 更多... | |
| struct | stt::network::TcpFDInf |
| 保存底层基础Tcp通道信息的结构体 更多... | |
| struct | stt::network::WorkerMessage |
| 工作现场完成任务后压入完成队列的数据结构 更多... | |
| class | stt::network::TcpServer |
| Tcp服务端类 更多... | |
| class | stt::network::HttpServer |
| Http/HttpServer 服务端操作类 更多... | |
| class | stt::network::WebSocketServerFDHandler |
| WebSocket协议的操作类 仅传入套接字,然后使用这个类进行WebSocket的操作 更多... | |
| class | stt::network::WebSocketServer |
| WebSocketServer服务端操作类 更多... | |
| class | stt::network::UdpFDHandler |
| UDP操作的类 传入套接字进行UDP协议的操作 更多... | |
| class | stt::network::UdpClient |
| udp客户端的操作类 更多... | |
| class | stt::network::UdpServer |
| udp服务端的操作类 更多... | |
| class | stt::system::ServerSetting |
| 初始化服务系统的类 更多... | |
| class | stt::system::csemp |
| 封装 System V 信号量的同步工具类。 更多... | |
| struct | stt::system::ProcessInf |
| 进程信息的结构体 更多... | |
| class | stt::system::HBSystem |
| 负责进程心跳监控,调度的类 用于监控服务进程,保证服务进程持续有效运行 进程结束后,0x5095这一块共享内存和信号量都没有删掉 目前只支持最多三个参数的进程加入监控 应该自己手动在程序编写加入心跳监控系统,更新心跳,检查心跳系统的逻辑。该类只提供调用接口。 更多... | |
| class | stt::system::Process |
| 进程管理的静态工具类 更多... | |
| class | stt::system::WorkerPool |
| 固定大小的工作线程池 更多... | |
命名空间 | |
| stt | |
| stt::system | |
| 系统的设置,进程的控制,心跳监控等 | |
| stt::file | |
| 文件相关:文件读写,日志等 | |
| stt::time | |
| 时间相关操作,基础时间工具 | |
| stt::data | |
| 数据处理 | |
| stt::security | |
| 涉及信息安全的api | |
| stt::network | |
| 网络框架,协议,通信,io多路复用相关 | |
宏定义 | |
| #define | ISO8086A "yyyy-mm-ddThh:mi:ss" |
| 定义ISO8086A这个宏为"yyyy-mm-ddThh:mi:ss" 更多... | |
| #define | ISO8086B "yyyy-mm-ddThh:mi:ss.sss" |
| 定义ISO8086B这个宏为"yyyy-mm-ddThh:mi:ss.sss" 更多... | |
| #define | MAX_PROCESS_NAME 100 |
| 定义MAX_PROCESS_NAME这个宏为100,意思是进程信息中的进程名字长度不超过100个字节 更多... | |
| #define | MAX_PROCESS_INF 1000 |
| 定义MAX_PROCESS_INF这个宏为1000,意思是进程信息表记录的进程信息最多为1000条 更多... | |
| #define | SHARED_MEMORY_KEY 0x5095 |
| 定义SHARED_MEMORY_KEY这个宏为0x5095,意思是进程信息表的共享内存键值为0x5095 更多... | |
| #define | SHARED_MEMORY_LOCK_KEY 0x5095 |
| 定义SHARED_MEMORY_LOCK_KEY这个宏为0x5095,意思是操作进程信息表的信号量的键值为0x5095 更多... | |
类型定义 | |
| using | stt::time::Milliseconds = std::chrono::duration< uint64_t, std::milli > |
| using | stt::time::Seconds = std::chrono::duration< uint64_t > |
| using | stt::system::Task = std::function< void()> |
枚举 | |
| enum | stt::security::RateLimitType { stt::security::RateLimitType::Cooldown, stt::security::RateLimitType::FixedWindow, stt::security::RateLimitType::SlidingWindow, stt::security::RateLimitType::TokenBucket } |
| 限流算法类型(策略)。 更多... | |
| enum | stt::security::DefenseDecision : int { stt::security::ALLOW = 0, stt::security::DROP = 1, stt::security::CLOSE = 2 } |
| 安全裁决结果(由 ConnectionLimiter 返回)。 更多... | |
| enum | stt::network::TLSState : uint8_t { stt::network::TLSState::NONE = 0, stt::network::TLSState::HANDSHAKING, stt::network::TLSState::ESTABLISHED, stt::network::TLSState::ERROR } |
函数 | |
| std::ostream & | stt::time::operator<< (std::ostream &os, const Duration &a) |
| 将 Duration 对象以可读格式输出到流中。 更多... | |
| #define ISO8086A "yyyy-mm-ddThh:mi:ss" |
定义ISO8086A这个宏为"yyyy-mm-ddThh:mi:ss"
| #define ISO8086B "yyyy-mm-ddThh:mi:ss.sss" |
定义ISO8086B这个宏为"yyyy-mm-ddThh:mi:ss.sss"
| #define MAX_PROCESS_INF 1000 |
定义MAX_PROCESS_INF这个宏为1000,意思是进程信息表记录的进程信息最多为1000条
| #define MAX_PROCESS_NAME 100 |
定义MAX_PROCESS_NAME这个宏为100,意思是进程信息中的进程名字长度不超过100个字节
| #define SHARED_MEMORY_KEY 0x5095 |
定义SHARED_MEMORY_KEY这个宏为0x5095,意思是进程信息表的共享内存键值为0x5095
| #define SHARED_MEMORY_LOCK_KEY 0x5095 |
定义SHARED_MEMORY_LOCK_KEY这个宏为0x5095,意思是操作进程信息表的信号量的键值为0x5095
1.8.5