#pragma once #include #include #include class QuicTestServer : public QObject { Q_OBJECT public: explicit QuicTestServer(QObject *parent = nullptr); ~QuicTestServer() override; bool isRunning() const; quint16 boundPort() const; public slots: void startServer(const QString &bindAddress, quint16 port, const QString &alpn, const QString &pkcs12Path, const QString &password); void stopServer(); signals: void runningChanged(bool running, quint16 port, const QString &detail); void clientCountChanged(int count); void statisticsChanged(quint64 registrations, quint64 heartbeats, quint64 datagrams, quint64 datagramBytes); void nodeRegistered(const QString &nodeId, const QString &bootId, const QString &grpcEndpoint, const QString &peerAddress); void logMessage(const QString &level, const QString &message); private: class Impl; std::unique_ptr m_impl; };