Deskflow 1.26.0.0
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 - 2026 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 QStringList getAvailableIPv4Addresses() const;
54
60 static bool isVirtualInterface(const QString &interfaceName);
61
62Q_SIGNALS:
67 void ipAddressesChanged(const QStringList &addresses);
68
69private:
70 void setIpAddresses(const QStringList &newAddresses);
71
75 void updateNetworkState();
76
77 QTimer *m_checkTimer;
78 QStringList m_lastAddresses;
79 bool m_isMonitoring = false;
80};
81
82} // namespace deskflow::gui
~NetworkMonitor() override=default
Destroy the NetworkMonitor object.
static bool isVirtualInterface(const QString &interfaceName)
Check if a network interface is virtual.
Definition NetworkMonitor.cpp:18
void stopMonitoring()
Stop network monitoring.
Definition NetworkMonitor.cpp:45
void startMonitoring(int intervalMs=3000)
Start network monitoring.
Definition NetworkMonitor.cpp:33
NetworkMonitor(QObject *parent=nullptr)
Construct a new NetworkMonitor object.
Definition NetworkMonitor.cpp:28
QStringList getAvailableIPv4Addresses() const
Get list of all available IPv4 addresses (excluding local and link-local addresses).
Definition NetworkMonitor.cpp:55
void ipAddressesChanged(const QStringList &addresses)
Emitted when IP addresses change.
Definition IServerConfig.h:14