|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
信号管理器 更多...
#include <signal.hpp>
Public 类型 | |
| using | signal_handler = function<bool(signal_event, void*)> |
| 信号处理函数类型 | |
Public 成员函数 | |
| ~signal_manager () | |
| 析构函数 | |
| void | register_handler (signal_event event, signal_handler handler) |
| 注册信号处理函数 | |
| void | register_handlers (const vector< signal_event > &events, const signal_handler &handler) |
| 批量注册信号处理函数 | |
| void | remove_handler (signal_event event) |
| 移除信号处理函数 | |
| signal_event | wait_for_signal (int timeout_ms=-1) |
| 等待信号 | |
| void | send_signal (signal_event event, void *context=nullptr) |
| 发送信号 | |
| void | set_force_exit_timeout (int timeout_ms) |
| 设置强制退出超时时间 | |
| void | start_monitoring () |
| 启动信号监控 | |
| void | stop_monitoring () |
| 停止信号监控 | |
| NEFORCE_NODISCARD bool | is_running () const |
| 检查是否正在运行 | |
| bool | block_signals (const vector< signal_event > &signals_to_block) const |
| 阻塞信号 | |
| bool | unblock_signals (const vector< signal_event > &signals_to_unblock) const |
| 解除信号阻塞 | |
静态 Public 成员函数 | |
| static signal_manager & | instance () |
| 获取单例实例 | |
| static NEFORCE_NODISCARD bool | is_platform_signal (signal_event event) |
| 检查是否为平台原生信号 | |
信号管理器
统一管理跨平台的信号处理,提供异步信号分发机制。
特性:
在文件 signal.hpp 第 107 行定义.
| using signal_manager::signal_handler = function<bool(signal_event, void*)> |
| bool signal_manager::block_signals | ( | const vector< signal_event > & | signals_to_block | ) | const |
阻塞信号
| signals_to_block | 要阻塞的信号列表 |
|
inlinestatic |
获取单例实例
在文件 signal.hpp 第 190 行定义.
引用了 instance().
被这些函数引用 instance(), signal_guard::signal_guard() , 以及 signal_guard::~signal_guard().
|
inlinestatic |
| NEFORCE_NODISCARD bool signal_manager::is_running | ( | ) | const |
检查是否正在运行
| void signal_manager::register_handler | ( | signal_event | event, |
| signal_handler | handler ) |
| void signal_manager::register_handlers | ( | const vector< signal_event > & | events, |
| const signal_handler & | handler ) |
批量注册信号处理函数
| events | 信号事件列表 |
| handler | 处理函数 |
| void signal_manager::remove_handler | ( | signal_event | event | ) |
移除信号处理函数
| event | 信号事件 |
| void signal_manager::send_signal | ( | signal_event | event, |
| void * | context = nullptr ) |
发送信号
| event | 信号事件 |
| context | 上下文数据(可选) |
| void signal_manager::set_force_exit_timeout | ( | int | timeout_ms | ) |
设置强制退出超时时间
| timeout_ms | 超时时间(毫秒) |
超过此时间未处理的信号将被丢弃。
| void signal_manager::start_monitoring | ( | ) |
| void signal_manager::stop_monitoring | ( | ) |
| bool signal_manager::unblock_signals | ( | const vector< signal_event > & | signals_to_unblock | ) | const |
解除信号阻塞
| signals_to_unblock | 要解除阻塞的信号列表 |
| signal_event signal_manager::wait_for_signal | ( | int | timeout_ms = -1 | ) |
等待信号
| timeout_ms | 超时时间(毫秒),-1表示无限等待 |
阻塞当前线程直到收到信号或超时。