Unfriend the discovery class from the monitor

pull/511/head
Simon Stürz 2022-04-25 08:17:37 +02:00
parent e4ff2d9422
commit 61bbd3cbdf
3 changed files with 20 additions and 7 deletions

View File

@ -431,7 +431,7 @@ void NetworkDeviceDiscoveryImpl::evaluateMonitor(NetworkDeviceMonitorImpl *monit
// Try to ping first
qCDebug(dcNetworkDeviceDiscovery()) << monitor << "try to ping" << monitor->networkDeviceInfo().address().toString();
monitor->m_lastConnectionAttempt = currentDateTime;
monitor->setLastConnectionAttempt(currentDateTime);
PingReply *reply = m_ping->ping(monitor->networkDeviceInfo().address());
connect(reply, &PingReply::finished, monitor, [=](){
@ -457,7 +457,9 @@ void NetworkDeviceDiscoveryImpl::processArpTraffic(const QNetworkInterface &inte
monitor->setLastSeen(now);
monitor->setReachable(true);
if (monitor->networkDeviceInfo().address() != address) {
monitor->m_networkDeviceInfo.setAddress(address);
NetworkDeviceInfo info = monitor->networkDeviceInfo();
info.setAddress(address);
monitor->setNetworkDeviceInfo(info);
qCDebug(dcNetworkDeviceDiscovery()) << "NetworkDeviceMonitor" << monitor << "ip address changed";
emit monitor->networkDeviceInfoChanged(monitor->networkDeviceInfo());
}
@ -546,7 +548,7 @@ void NetworkDeviceDiscoveryImpl::evaluateMonitors()
evaluateMonitor(monitor);
// Check if there is any monitor which has not be seen since
if (monitor->m_lastConnectionAttempt.isValid() && longerAgoThan(monitor->lastSeen(), m_monitorInterval)) {
if (monitor->lastConnectionAttempt().isValid() && longerAgoThan(monitor->lastSeen(), m_monitorInterval)) {
monitorRequiresRediscovery = true;
}
}

View File

@ -82,7 +82,7 @@ QDateTime NetworkDeviceMonitorImpl::lastSeen() const
return m_lastSeen;
}
void NetworkDeviceMonitorImpl::setLastSeen(const QDateTime lastSeen)
void NetworkDeviceMonitorImpl::setLastSeen(const QDateTime &lastSeen)
{
if (m_lastSeen == lastSeen)
return;
@ -92,4 +92,14 @@ void NetworkDeviceMonitorImpl::setLastSeen(const QDateTime lastSeen)
emit lastSeenChanged(m_lastSeen);
}
QDateTime NetworkDeviceMonitorImpl::lastConnectionAttempt() const
{
return m_lastConnectionAttempt;
}
void NetworkDeviceMonitorImpl::setLastConnectionAttempt(const QDateTime &lastConnectionAttempt)
{
m_lastConnectionAttempt = lastConnectionAttempt;
}
}

View File

@ -42,8 +42,6 @@ class NetworkDeviceMonitorImpl : public NetworkDeviceMonitor
{
Q_OBJECT
friend class NetworkDeviceDiscoveryImpl;
public:
explicit NetworkDeviceMonitorImpl(const MacAddress &macAddress, QObject *parent = nullptr);
~NetworkDeviceMonitorImpl();
@ -57,7 +55,10 @@ public:
void setReachable(bool reachable);
QDateTime lastSeen() const override;
void setLastSeen(const QDateTime lastSeen);
void setLastSeen(const QDateTime &lastSeen);
QDateTime lastConnectionAttempt() const;
void setLastConnectionAttempt(const QDateTime &lastConnectionAttempt);
private:
NetworkDeviceInfo m_networkDeviceInfo;