#ifndef TERMINALWORKER_H #define TERMINALWORKER_H #include class TerminalTab; class TerminalWorker : public QObject { Q_OBJECT TerminalTab* terminalTab = nullptr; QWebSocket* websocket = nullptr; QUrl wsUrl; QString otp; bool started = false; std::atomic stopped = false; public: TerminalWorker(TerminalTab* terminalTab, const QString &otp, const QUrl& wsUrl, QObject* parent = nullptr); ~TerminalWorker() override; Q_SIGNALS: void binaryMessageToTerminal(const QByteArray& msg); void connectedToTerminal(); void finished(); void errorStop(); public Q_SLOTS: void start(); void stop(); void sendData(const QByteArray& data); private Q_SLOTS: void onWsConnected(); void onWsBinaryMessageReceived(const QByteArray& msg); void onWsError(QAbstractSocket::SocketError error); }; #endif