Deskflow 1.25.0.128
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
NetworkMonitor.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2025 Deskflow Developers
4 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
5 */
6
7#pragma once
8
9#include <QHostAddress>
10#include <QList>
11#include <QObject>
12
13class QTimer;
14namespace deskflow::gui {
15
22class NetworkMonitor : public QObject
23{
24 Q_OBJECT
25
26public:
31 explicit NetworkMonitor(QObject *parent = nullptr);
32
36 ~NetworkMonitor() override = default;
37
42 void startMonitoring(int intervalMs = 3000);
43
47 void stopMonitoring();
48
53 QList<QHostAddress> getAvailableIPv4Addresses() const;
54
59 QHostAddress getSuggestedIPv4Address() const;
60
61Q_SIGNALS:
66 void ipAddressesChanged(const QList<QHostAddress> &addresses);
67
68private:
69 void setIpAddresses(const QList<QHostAddress> &newAddresses);
70
76 bool isVirtualInterface(const QString &interfaceName) const;
77
81 void updateNetworkState();
82
83 QTimer *m_checkTimer;
84 QList<QHostAddress> m_lastAddresses;
85 bool m_isMonitoring;
86};
87
88} // namespace deskflow::gui
QHostAddress getSuggestedIPv4Address() const
Get recommended IP address (192.168.x.x preferred).
Definition NetworkMonitor.cpp:122
~NetworkMonitor() override=default
Destroy the NetworkMonitor object.
void stopMonitoring()
Stop network monitoring.
Definition NetworkMonitor.cpp:56
void startMonitoring(int intervalMs=3000)
Start network monitoring.
Definition NetworkMonitor.cpp:44
NetworkMonitor(QObject *parent=nullptr)
Construct a new NetworkMonitor object.
Definition NetworkMonitor.cpp:39
void ipAddressesChanged(const QList< QHostAddress > &addresses)
Emitted when IP addresses change.
QList< QHostAddress > getAvailableIPv4Addresses() const
Get list of all available IPv4 addresses (excluding local and link-local addresses).
Definition NetworkMonitor.cpp:66
Definition IServerConfig.h:14