ScreenLockDetector/src/powermonitor.h

38 lines
962 B
C++

#ifndef POWERMONITOR_H
#define POWERMONITOR_H
#include "platform/powermonitor_base.h"
/**
* @brief 跨平台电源监视器工厂类
*
* 根据编译平台自动选择合适的电源监视器实现
* 提供统一的接口用于监听系统睡眠/唤醒事件
*/
class PowerMonitor : public PowerMonitorBase
{
Q_OBJECT
public:
/**
* @brief 创建平台特定的电源监视器实例
* @param parent 父对象
*
* 根据编译时的平台宏自动创建对应的实现:
* - Linux: PowerMonitorLinux (使用 DBus login1)
* - macOS: PowerMonitorMacOS (使用 NSWorkspace 通知)
*/
explicit PowerMonitor(QObject *parent = nullptr);
~PowerMonitor() override;
/**
* @brief 初始化电源监视器
* @return true 如果初始化成功,否则返回 false
*/
bool initialize() override;
private:
PowerMonitorBase *m_impl; // 平台特定的实现
};
#endif // POWERMONITOR_H