From 02fe86ab2a04a02b114d7ca8ce4374a29a1d5f45 Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Fri, 13 Mar 2026 11:58:45 +0100 Subject: Coalesce mock server into single MockServer class Replace three independent EchoServer instances with one MockServer that owns three QTcpServers, shares a single KA_PING timer, and uses a flat client list with localPort() for port resolution. --- mock-server/MockServer.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 mock-server/MockServer.h (limited to 'mock-server/MockServer.h') diff --git a/mock-server/MockServer.h b/mock-server/MockServer.h new file mode 100644 index 0000000..21d4d32 --- /dev/null +++ b/mock-server/MockServer.h @@ -0,0 +1,44 @@ +/** + * @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; +}; -- cgit v1.2.3