#ifndef SERVERPROCESS_H #define SERVERPROCESS_H #include #include #include #include class ServerProcess : public QObject { Q_OBJECT public: explicit ServerProcess(QObject *parent = nullptr); ~ServerProcess(); void start(const QString &configPath); void stop(); void fetchStats(); bool isRunning() const; signals: void started(); void stopped(); void logMessage(const QString &message); void clientsUpdated(const QJsonArray &clients); void statsUpdated(const QJsonObject &stats); void error(const QString &message); private slots: void onProcessStarted(); void onProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); void onProcessError(QProcess::ProcessError error); void onReadyReadStandardOutput(); void onReadyReadStandardError(); private: QString findPythonExecutable(); QString findServerDirectory(); void parseLogLine(const QString &line); QProcess *process; QString pythonPath; QString serverDir; bool running; QString outputBuffer; }; #endif // SERVERPROCESS_H