Класс QNetworkConfigurationManager
Класс QNetworkConfigurationManager управляет сетевыми конфигурациями, предоставляемыми системой. Подробнее...
| Заголовок: | #include <QNetworkConfigurationManager> |
| qmake: | QT += network |
| С момента: | Qt 4.7 |
| Наследует: | QObject |
Этот класс устарел. Он предоставляется для поддержки старого кода. Мы настоятельно рекомендуем не использовать его в новом коде.
Этот класс был представлен в Qt 4.7.
Открытые типы
| флаги | Возможности |
| Перечисление | Возможность { CanStartAndStopInterfaces, DirectConnectionRouting, SystemSessionSupport, ApplicationLevelRoaming, ForcedRoaming, …, NetworkSessionRequired } |
Открытые функции
| QNetworkConfigurationManager(QObject *parent = nullptr) | |
| виртуальный | ~QNetworkConfigurationManager() |
| QList<QNetworkConfiguration> | всеКонфигурации(QNetworkConfiguration::StateFlags filter = QNetworkConfiguration::StateFlags()) const |
| QNetworkConfigurationManager::Возможности | возможности() const |
| QNetworkConfiguration | конфигурацияПоИдентификатору(const QString &identifier) const |
| QNetworkConfiguration | неизменнаяКонфигурация() const |
| bool | вОнлайне() const |
Открытые слоты
| void | обновитьКонфигурации() |
Сигналы
| void | конфигурацияДобавлена(const QNetworkConfiguration &config) |
| void | конфигурацияИзменена(const QNetworkConfiguration &config) |
| void | конфигурацияУдалена(const QNetworkConfiguration &config) |
| void | состояниеОнлайнаИзменено(bool isOnline) |
| void | обновлениеЗавершено() |
Подробное описание
QNetworkConfigurationManager предоставляет доступ к сетевым конфигурациям, известным системе, и позволяет приложениям определять возможности системы (в отношении сетевых сессий) во время выполнения.
QNetworkConfiguration абстрагирует набор параметров конфигурации, описывающих, как должен быть настроен сетевой интерфейс для подключения к конкретной целевой сети. QNetworkConfigurationManager сохраняет и обновляет глобальный список QNetworkConfigurations. Приложения могут получить доступ к этому списку и отфильтровать его с помощью всеКонфигурации(). Если новая конфигурация добавляется, или существующая удаляется или изменяется, соответственно, излучаются сигналы конфигурацияДобавлена(), конфигурацияУдалена() и конфигурацияИзменена().
Метод неизменнаяКонфигурация() можно использовать при необходимости немедленного создания новой сетевой сессии, не заботясь о конкретной конфигурации. Он возвращает конфигурацию QNetworkConfiguration::Discovered. Если таких конфигураций нет, возвращается недействительная конфигурация.
Некоторые обновления конфигурации могут потребовать некоторого времени для выполнения. Например, сканирование WLAN. Если платформа не выполняет внутренние обновления, может потребоваться вручную инициировать обновления конфигурации с помощью QNetworkConfigurationManager::обновитьКонфигурации(). О завершении процесса обновления сигнализируется путём излучения сигнала обновлениеЗавершено(). Процесс обновления гарантирует, что каждый существующий экземпляр QNetworkConfiguration будет обновлен. Нет необходимости запрашивать обновлённый список конфигураций через всеКонфигурации().
См. также QNetworkConfiguration.
Документация по типам членов
Перечисление QNetworkConfigurationManager::Возможность QNetworkConfigurationManager::Возможности
Определяет возможности системного API-интерфейса несущей. Возможные значения:
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfigurationManager::CanStartAndStopInterfaces |
0x00000001 |
Сетевые сессии и их основанные на них точки доступа могут быть инициированы и остановлены. Если этот флаг не установлен, QNetworkSession может только отслеживать, но не влиять на состояние точек доступа. На некоторых платформах эта функция может потребовать повышенных прав пользователя. Этот параметр зависит от платформы и может быть недоступен. |
QNetworkConfigurationManager::DirectConnectionRouting |
0x00000002 |
Сетевые сессии и их сокеты могут быть привязаны к определённому сетевому интерфейсу. Любой пакет, проходящий через сокет, направляется на указанный сетевой интерфейс, игнорируя записи в стандартной таблице маршрутизации. Это может быть полезно, когда два интерфейса могут достигать перекрывающихся IP-диапазонов или приложение имеет определённые потребности относительно целевых сетей. Этот параметр зависит от платформы и может быть недоступен. |
QNetworkConfigurationManager::SystemSessionSupport |
0x00000004 |
Если этот флаг установлен, платформа гарантирует, что сетевой интерфейс не будет выключен до тех пор, пока последняя сетевая сессия не будет закрыта(). Это работает через несколько процессов. Если поддержка сессий платформы отсутствует, этот API может гарантировать вышеуказанное поведение только для сетевых сессий в рамках одного процесса. В общем, мобильные платформы имеют такую поддержку, в то время как большинство настольных платформ лишены этой возможности. |
QNetworkConfigurationManager::ApplicationLevelRoaming |
0x00000008 |
Система даёт приложениям контроль над поведением роуминга системы. Приложения могут инициировать роуминг (в случае, если текущее подключение не подходит) и участвуют в решении, если система определила более подходящую точку доступа. |
QNetworkConfigurationManager::ForcedRoaming |
0x00000010 |
Система отключает существующую точку доступа и переподключается к более подходящей. Приложение не имеет никакого контроля над этим процессом и должно переподключить свои активные сокеты. |
QNetworkConfigurationManager::DataStatistics |
0x00000020 |
Если этот флаг установлен, QNetworkSession может предоставлять статистику о передаваемых и принимаемых данных. |
QNetworkConfigurationManager::NetworkSessionRequired |
0x00000040 |
Если этот флаг установлен, платформа требует создания сетевой сессии перед выполнением сетевых операций. |
Тип Возможности — это псевдоним для QFlags<Возможность>. Он хранит логическое ИЛИ комбинацию значений Возможности.
Документация по функциям-членам
QNetworkConfigurationManager::QNetworkConfigurationManager(QObject *parent = nullptr)
Конструктор QNetworkConfigurationManager с заданным parent.
Обратите внимание, что для обеспечения немедленного доступа к списку текущих конфигураций, обновление выполняется во время создания, что приводит к некоторой задержке.
[signal] void QNetworkConfigurationManager::конфигурацияДобавлена(const QNetworkConfiguration &config)
Этот сигнал излучается всякий раз, когда новая сетевая конфигурация добавляется в систему. Новая конфигурация задаётся параметром config.
[signal] void QNetworkConfigurationManager::configurationChanged(const QNetworkConfiguration &config)
Этот сигнал излучается, когда состояние config изменяется.
[signal] void QNetworkConfigurationManager::configurationRemoved(const QNetworkConfiguration &config)
Этот сигнал излучается, когда конфигурация собирается быть удалена из системы. Удаленная конфигурация, указанная config, является недействительной, но сохраняет имя и идентификатор.
[signal] void QNetworkConfigurationManager::onlineStateChanged(bool isOnline)
Этот сигнал излучается, когда устройство переходит из режима онлайн в режим офлайн или наоборот. isOnline представляет новое состояние устройства.
Состояние считается онлайн, пока allConfigurations(QNetworkConfiguration::Active) возвращает список с хотя бы одной записью.
[signal] void QNetworkConfigurationManager::updateCompleted()
Этот сигнал излучается, когда завершено обновление конфигурации. Такое обновление может быть инициировано с помощью updateConfigurations().
[slot] void QNetworkConfigurationManager::updateConfigurations()
Инициализирует обновление всех конфигураций. Это может использоваться для инициирования сканирования WLAN или других длительных обновлений, которые могут потребоваться для получения правильного состояния конфигураций.
Этот вызов асинхронный. По завершении этого обновления излучается сигнал updateCompleted(). Если обнаружены новые конфигурации или старые были удалены или изменены, процесс обновления может вызвать излучение одного или нескольких сигналов configurationAdded(), configurationRemoved() и configurationChanged().
Если состояние конфигурации изменяется в результате этого обновления, все существующие экземпляры QNetworkConfiguration автоматически обновляются.
См. также allConfigurations().
[virtual] QNetworkConfigurationManager::~QNetworkConfigurationManager()
Освобождает ресурсы, связанные с объектом QNetworkConfigurationManager.
QList<QNetworkConfiguration> QNetworkConfigurationManager::allConfigurations(QNetworkConfiguration::StateFlags filter = QNetworkConfiguration::StateFlags()) const
Возвращает список конфигураций, соответствующих заданному filter.
По умолчанию эта функция возвращает все (определенные и неопределенные) конфигурации.
Беспроводная сеть с определенным SSID может быть доступна только в определенной области, несмотря на то, что система имеет для неё действительную конфигурацию. Поэтому флаг фильтра может использоваться для ограничения списка только обнаруженными и, возможно, подключенными конфигурациями.
Если filter равен нулю, эта функция возвращает все возможные конфигурации.
Обратите внимание, что эта функция возвращает состояния всех конфигураций, известные на момент вызова этой функции. Если, например, определена конфигурация типа WLAN, системе может потребоваться выполнить сканирование WLAN, чтобы определить, действительно ли она доступна. Для получения наиболее точного состояния следует использовать updateConfigurations() для обновления состояния каждой конфигурации. Обратите внимание, что такое обновление может потребовать некоторое время. О его завершении сигнализируется с помощью updateCompleted(). В отсутствие обновления конфигурации функция возвращает наилучшее на момент вызова приближение. Поэтому, если интересны конфигурации WLAN, рекомендуется вызвать updateConfigurations() один раз после создания экземпляра QNetworkConfigurationManager (сканирование WLAN слишком длительно, чтобы выполнять его в конструкторе). После этого данные автоматически сохраняются в актуальном состоянии по мере получения от системы сообщений об изменениях.
QNetworkConfigurationManager::Capabilities QNetworkConfigurationManager::capabilities() const
Возвращает поддерживаемые текущей платформой возможности.
QNetworkConfiguration QNetworkConfigurationManager::configurationFromIdentifier(const QString &identifier) const
Возвращает QNetworkConfiguration для identifier; в противном случае возвращает недействительную QNetworkConfiguration.
См. также QNetworkConfiguration::identifier().
QNetworkConfiguration QNetworkConfigurationManager::defaultConfiguration() const
Возвращает используемую по умолчанию конфигурацию. Эта функция всегда возвращает обнаруженную конфигурацию; в противном случае недействительную конфигурацию.
В некоторых случаях может потребоваться вызвать updateConfigurations() и дождаться сигнала updateCompleted() перед вызовом этой функции.
См. также allConfigurations().
bool QNetworkConfigurationManager::isOnline() const
Возвращает true , если система считается подключенной к другому устройству через активный сетевой интерфейс; в противном случае возвращает false.
Это эквивалентно следующему фрагменту кода:
QNetworkConfigurationManager mgr;
QList<QNetworkConfiguration> activeConfigs = mgr.allConfigurations(QNetworkConfiguration::Active);
if (activeConfigs.count() > 0)
Q_ASSERT(mgr.isOnline());
else
Q_ASSERT(!mgr.isOnline()); См. также onlineStateChanged().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qnetworkconfigurationmanager.html