#include #include "Runner.h" #include "Ping.h" Runner::Runner(QList pingHosts) : pingHosts_p(pingHosts) { } void Runner::refresh() { QMutexLocker locker(&mutex); refreshed_p = QDateTime::currentDateTimeUtc().toTime_t(); } uint Runner::refreshed() { QMutexLocker locker(&mutex); return refreshed_p; } const QString Runner::currentHost() { QMutexLocker locker(&mutex); return currentHost_p; } const QMap Runner::pingData() { QMutexLocker locker(&mutex); return pingData_p; } void Runner::setCurrentHost(const QString ¤tHost) { QMutexLocker locker(&mutex); currentHost_p = currentHost; } void Runner::setPingData(const QMap &pingData) { QMutexLocker locker(&mutex); pingData_p = pingData; } void Runner::run() { // Ping data initialisation QMap pingData_l; for (const QString &host : pingHosts_p) { pingData_l.insert(host, -1); } setPingData(pingData_l); refresh(); forever { if (QThread::currentThread()->isInterruptionRequested()) { return; } for (const QString &host : pingHosts_p) { setCurrentHost(host); refresh(); double ping = Ping::ping(host, 3); pingData_l[host] = ping; setPingData(pingData_l); refresh(); } } }