#include #include #include #include "Socket.h" Socket::Socket(Runner *runner) : runner(runner) { } void Socket::incomingConnection(quintptr socketDescriptor) { QLocalSocket *socket = new QLocalSocket; if (!socket->setSocketDescriptor(socketDescriptor, QLocalSocket::ConnectedState, QLocalSocket::WriteOnly)) { QTextStream(stderr) << "Socket failed to initialise." << endl; delete socket; return; } QObject::connect(socket, SIGNAL(disconnected()), socket, SLOT(deleteLater())); QJsonObject pingObject; QMap pingData_l = runner->pingData(); QMap::const_iterator it = pingData_l.constBegin(); QMap::const_iterator end = pingData_l.constEnd(); while (it != end) { pingObject.insert(it.key(), it.value()); it++; } QJsonObject object; object.insert("Current", runner->currentHost()); object.insert("Ping", pingObject); object.insert("Refreshed", QString::number(runner->refreshed(), 16)); QJsonDocument document; document.setObject(object); QByteArray jsonData = document.toJson(QJsonDocument::Compact); socket->write(jsonData + "\n"); socket->disconnectFromServer(); }