Index: lib/Comms/src/CloudConnectClient.cpp =================================================================== diff -u -rc6a4b63a37f3beb1e8a51702ec3a56a1c32cfe8f -r59b4c22f45a1d098064a886452769204e90cfb4b --- lib/Comms/src/CloudConnectClient.cpp (.../CloudConnectClient.cpp) (revision c6a4b63a37f3beb1e8a51702ec3a56a1c32cfe8f) +++ lib/Comms/src/CloudConnectClient.cpp (.../CloudConnectClient.cpp) (revision 59b4c22f45a1d098064a886452769204e90cfb4b) @@ -16,7 +16,10 @@ #include #include -static void qRegister() { qRegisterMetaType("CloudConnectFrame::Type"); } +static void qRegister() +{ + qRegisterMetaType("CloudConnectFrame::Topic"); +} Q_COREAPP_STARTUP_FUNCTION(qRegister) /*! @@ -41,7 +44,7 @@ * first connection attempt. Guards against double-initialisation. * \param socketPath - path to the Unix domain socket * \param reconnectIntervalMs - milliseconds between reconnect attempts - * \return true on success, false if already initialised + * \return true on success, false if already initialized */ bool CloudConnectClient::init(const QString &socketPath, int reconnectIntervalMs) { @@ -58,12 +61,12 @@ /*! * \brief CloudConnectClient::init - * \details Calls init() then moves this object onto vThread. - * Must be called from the main thread. + * \details Calls init() then moves this object onto thread. + * \note Must be called from the main thread. * \param socketPath - path to the Unix domain socket * \param reconnectIntervalMs - milliseconds between reconnect attempts * \param thread - the thread to move this object onto - * \return true on success, false if already initialised + * \return true on success, false if already initialized */ bool CloudConnectClient::init(const QString &socketPath, int reconnectIntervalMs, QThread &thread) { @@ -77,17 +80,17 @@ /*! * \brief CloudConnectClient::send * \details Builds a CloudConnectFrame and writes it to the socket. - * \param type - message identifier for Agent MQTT topic + * \param topic - MQTT topic carried in the frame header * \param sequence - caller-managed sequence number * \param payload - message payload; pass empty for zero-length frames * \return true if written to the socket, false if not connected */ -bool CloudConnectClient::send(CloudConnectFrame::Type type, quint16 sequence, const QByteArray &payload) +bool CloudConnectClient::send(CloudConnectFrame::Topic topic, quint16 sequence, const QByteArray &payload) { if (_socket.state() != QLocalSocket::ConnectedState) { return false; } - const QByteArray frame = CloudConnectFrame::build(type, sequence, payload); + const QByteArray frame = CloudConnectFrame::build(topic, sequence, payload); _socket.write(frame); _socket.flush(); return true; @@ -97,18 +100,24 @@ * \brief CloudConnectClient::quit * \details Moves this object back to the main thread for safe destruction. */ -void CloudConnectClient::quit() { quitThread(); } +void CloudConnectClient::quit() +{ + quitThread(); +} /*! * \brief CloudConnectClient::connectToServer * \details Initiates a connection to the stored socket path. */ -void CloudConnectClient::connectToServer() { _socket.connectToServer(_socketPath, QLocalSocket::ReadWrite); } +void CloudConnectClient::connectToServer() +{ + _socket.connectToServer(_socketPath, QLocalSocket::ReadWrite); +} /*! * \brief CloudConnectClient::initThread * \details Moves this object onto vThread and starts it. - * Must be called from the main thread. + * \note Must be called from the main thread. * \param thread - the thread to move this object onto */ void CloudConnectClient::initThread(QThread &thread) @@ -138,7 +147,7 @@ */ void CloudConnectClient::onConnected() { - qDebug().noquote() << "Agent socket connected to" << _socketPath; + qDebug().noquote() << "CloudConnect client socket connected to" << _socketPath; _reconnectTimer.stop(); emit didConnect(); } @@ -149,7 +158,7 @@ */ void CloudConnectClient::onDisconnected() { - qDebug().noquote() << "Agent socket disconnected — retrying in" << _reconnectTimer.interval() / 1000 << "s"; + qDebug().noquote() << "CloudConnect client socket disconnected, retrying in" << _reconnectTimer.interval() / 1000 << "s"; _rxBuf.clear(); _rxMsg.reset(); _reconnectTimer.start(); @@ -163,7 +172,7 @@ */ void CloudConnectClient::onError(QLocalSocket::LocalSocketError error) { - qDebug().noquote() << "Agent socket error:" << _socket.errorString() << QString("(%1)").arg(error); + qDebug().noquote() << "CloudConnect client socket error:" << _socket.errorString() << QString("(%1)").arg(error); if (!_reconnectTimer.isActive()) { _reconnectTimer.start(); } @@ -182,7 +191,7 @@ do { state = _rxMsg.read(_rxBuf); if (state == CloudConnectFrame::ReadState::Complete) { - emit didMessageReceive(_rxMsg.type(), _rxMsg.sequence(), _rxMsg.payload()); + emit didMessageReceive(_rxMsg.topic(), _rxMsg.sequence(), _rxMsg.payload()); _rxMsg.reset(); } } while (state == CloudConnectFrame::ReadState::Complete && !_rxBuf.isEmpty()); @@ -197,6 +206,6 @@ if (_socket.state() != QLocalSocket::UnconnectedState) { return; } - qDebug().noquote() << "Agent socket reconnecting to" << _socketPath; + qDebug().noquote() << "CloudConnect client socket reconnecting to" << _socketPath; connectToServer(); }