/** * @file MockServer.h * @brief Mock XPL2 server — listens on all three protocol ports. */ #pragma once #include #include #include #include class QTcpSocket; class MockServer : public QObject { Q_OBJECT public: explicit MockServer (QObject *parent = nullptr); private slots: void onNewConnection (); void onClientMessageReady (); void onClientDisconnected (); void sendKaPing (); private: struct Port { QTcpServer server; const char *name = nullptr; quint16 number = 0; }; void setupPort (Port &port, const char *name, quint16 number); const char *portName (quint16 localPort) const; void handleCommand (QTcpSocket *client, const QByteArray &line); Port m_command; Port m_imaging; Port m_status; QList m_clients; QTimer m_pingTimer; };