#ifndef SINGLEINSTANCE_H
#define SINGLEINSTANCE_H

#include <QObject>  // 包含QObject类的头文件，QObject是所有Qt对象的基类
#include <QLocalServer>  // 包含QLocalServer类的头文件，用于创建本地服务器
#include <QLocalSocket>  // 包含QLocalSocket类的头文件，用于创建本地套接字

class SingleInstance : public QObject// 定义SingleInstance类，继承自QObject
{
    Q_OBJECT// 宏，用于支持信号和槽机制
public:
    explicit SingleInstance(QObject *parent = 0);// 构造函数，允许传入父对象指针，默认为空

    void listen(const QString &name);// 监听指定名称的本地服务器
    bool hasPrevious(const QString &name);// 检查是否有其他实例正在运行

signals:
    void newInstance(); // 当有新实例连接时发出的信号

private:
    QLocalSocket *m_socket;// 私有成员变量，用于存储本地套接字指针
    QLocalServer m_server;// 私有成员变量，用于存储本地服务器对象
};

#endif // SINGLEINSTANCE_H
