Streamline Callbacks

This commit is contained in:
Lord-Grey
2024-11-28 22:11:12 +01:00
parent 5d5c2bfdcb
commit 2e4942adc6
8 changed files with 79 additions and 40 deletions

View File

@@ -1,6 +1,7 @@
// project includes
#include "JsonClientConnection.h"
#include <api/JsonAPI.h>
#include <api/JsonCallbacks.h>
// qt inc
#include <QTcpSocket>
@@ -17,8 +18,9 @@ JsonClientConnection::JsonClientConnection(QTcpSocket *socket, bool localConnect
// create a new instance of JsonAPI
_jsonAPI = new JsonAPI(socket->peerAddress().toString(), _log, localConnection, this);
// get the callback messages from JsonAPI and send it to the client
connect(_jsonAPI, &JsonAPI::callbackMessage, this , &JsonClientConnection::sendMessage);
connect(_jsonAPI, &JsonAPI::callbackReady, this , &JsonClientConnection::sendMessage);
connect(_jsonAPI, &JsonAPI::forceClose, this , [&](){ _socket->close(); } );
connect(_jsonAPI->getCallBack().get(), &JsonCallbacks::callbackReady, this, &JsonClientConnection::sendMessage);
_jsonAPI->initialize();
}
@@ -47,7 +49,8 @@ void JsonClientConnection::readRequest()
qint64 JsonClientConnection::sendMessage(QJsonObject message)
{
QJsonDocument writer(message);
QByteArray data = writer.toJson(QJsonDocument::Compact) + "\n";
QByteArray data = writer.toJson(QJsonDocument::Compact);
data.append('\n');
if (!_socket || (_socket->state() != QAbstractSocket::ConnectedState)) return 0;
return _socket->write(data.data(), data.size());