NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
signal_manager类 参考

信号管理器 更多...

#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_managerinstance ()
 获取单例实例
static NEFORCE_NODISCARD bool is_platform_signal (signal_event event)
 检查是否为平台原生信号

详细描述

信号管理器

统一管理跨平台的信号处理,提供异步信号分发机制。

特性:

  • 单例模式
  • 线程安全的信号注册和分发
  • 支持信号队列
  • 支持超时信号
  • 支持自定义事件
  • 信号守卫

在文件 signal.hpp107 行定义.

成员类型定义说明

◆ signal_handler

信号处理函数类型

返回true表示继续运行,false表示退出

在文件 signal.hpp114 行定义.

成员函数说明

◆ block_signals()

bool signal_manager::block_signals ( const vector< signal_event > & signals_to_block) const

阻塞信号

参数
signals_to_block要阻塞的信号列表
返回
操作成功返回true(仅Linux有效)

◆ instance()

signal_manager & signal_manager::instance ( )
inlinestatic

获取单例实例

返回
信号管理器实例引用

在文件 signal.hpp190 行定义.

引用了 instance().

被这些函数引用 instance(), signal_guard::signal_guard() , 以及 signal_guard::~signal_guard().

◆ is_platform_signal()

NEFORCE_NODISCARD bool signal_manager::is_platform_signal ( signal_event event)
inlinestatic

检查是否为平台原生信号

参数
event信号事件
返回
是平台原生信号返回true

在文件 signal.hpp279 行定义.

◆ is_running()

NEFORCE_NODISCARD bool signal_manager::is_running ( ) const

检查是否正在运行

返回
正在运行返回true

◆ register_handler()

void signal_manager::register_handler ( signal_event event,
signal_handler handler )

注册信号处理函数

参数
event信号事件
handler处理函数
异常
system_exceptionhandler为空时抛出

◆ register_handlers()

void signal_manager::register_handlers ( const vector< signal_event > & events,
const signal_handler & handler )

批量注册信号处理函数

参数
events信号事件列表
handler处理函数

◆ remove_handler()

void signal_manager::remove_handler ( signal_event event)

移除信号处理函数

参数
event信号事件

◆ send_signal()

void signal_manager::send_signal ( signal_event event,
void * context = nullptr )

发送信号

参数
event信号事件
context上下文数据(可选)

◆ set_force_exit_timeout()

void signal_manager::set_force_exit_timeout ( int timeout_ms)

设置强制退出超时时间

参数
timeout_ms超时时间(毫秒)

超过此时间未处理的信号将被丢弃。

◆ start_monitoring()

void signal_manager::start_monitoring ( )

启动信号监控

启动信号处理线程和超时监控线程。

被这些函数引用 signal_guard::signal_guard().

◆ stop_monitoring()

void signal_manager::stop_monitoring ( )

停止信号监控

停止所有监控线程。

被这些函数引用 signal_guard::~signal_guard().

◆ unblock_signals()

bool signal_manager::unblock_signals ( const vector< signal_event > & signals_to_unblock) const

解除信号阻塞

参数
signals_to_unblock要解除阻塞的信号列表
返回
操作成功返回true(仅Linux有效)

◆ wait_for_signal()

signal_event signal_manager::wait_for_signal ( int timeout_ms = -1)

等待信号

参数
timeout_ms超时时间(毫秒),-1表示无限等待
返回
收到的信号事件

阻塞当前线程直到收到信号或超时。


该类的文档由以下文件生成: