4#include <QtNetwork/private/qnetworkinformation_p.h>
6#include <QtNetwork/private/qnetconmonitor_p.h>
8#include <QtCore/qglobal.h>
9#include <QtCore/private/qobject_p.h>
12Q_DECLARE_LOGGING_CATEGORY(lcNetInfoSCR)
13Q_LOGGING_CATEGORY(lcNetInfoSCR,
"qt.network.info.applenetworkinfo");
17 return QString::fromUtf16(QNetworkInformationBackend::PluginNames
18 [QNetworkInformationBackend::PluginNamesAppleIndex]);
31 return featuresSupportedStatic();
36 return QNetworkInformation::Features(QNetworkInformation::Feature::Reachability
37 | QNetworkInformation::Feature::TransportMedium);
42 void interfaceTypeChanged(QNetworkConnectionMonitor::InterfaceType type);
53 Q_PLUGIN_METADATA(IID QNetworkInformationBackendFactory_iid)
61 return QAppleNetworkInformationBackend::featuresSupportedStatic();
65 QNetworkInformation::Features requiredFeatures)
const override
67 if ((requiredFeatures & featuresSupported()) != requiredFeatures)
78 connect(&probe, &QNetworkConnectionMonitor::reachabilityChanged,
this,
79 &QAppleNetworkInformationBackend::reachabilityChanged,
80 Qt::QueuedConnection);
81 connect(&probe, &QNetworkConnectionMonitor::interfaceTypeChanged,
this,
82 &QAppleNetworkInformationBackend::interfaceTypeChanged,
83 Qt::QueuedConnection);
84 probe.startMonitoring();
93 setReachability(isOnline ? QNetworkInformation::Reachability::Online
94 : QNetworkInformation::Reachability::Disconnected);
98 QNetworkConnectionMonitor::InterfaceType type)
101 if (reachability() == QNetworkInformation::Reachability::Disconnected) {
102 setTransportMedium(QNetworkInformation::TransportMedium::Unknown);
105 case QNetworkConnectionMonitor::InterfaceType::Ethernet:
106 setTransportMedium(QNetworkInformation::TransportMedium::Ethernet);
108 case QNetworkConnectionMonitor::InterfaceType::Cellular:
109 setTransportMedium(QNetworkInformation::TransportMedium::Cellular);
111 case QNetworkConnectionMonitor::InterfaceType::WiFi:
112 setTransportMedium(QNetworkInformation::TransportMedium::WiFi);
114 case QNetworkConnectionMonitor::InterfaceType::Unknown:
115 setTransportMedium(QNetworkInformation::TransportMedium::Unknown);
123#include "qapplenetworkinformationbackend.moc"