diff options
Diffstat (limited to 'mock-server/MockServer.h')
| -rw-r--r-- | mock-server/MockServer.h | 44 |
1 files changed, 44 insertions, 0 deletions
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 <QList> +#include <QObject> +#include <QTcpServer> +#include <QTimer> + +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<QTcpSocket *> m_clients; + QTimer m_pingTimer; +}; |
