Класс QNetworkConfigurationManager
Класс QNetworkConfigurationManager управляет сетевыми конфигурациями, предоставляемыми системой. Подробнее...
| Заголовок: | #include <QNetworkConfigurationManager> |
| qmake: | QT += network |
| С момента: | Qt 4.7 |
| Наследуется от: | QObject |
Открытые типы
| флаги | Возможности |
| Перечисление | Возможность { МожноЗапускатьИОстановитьИнтерфейсы, МаршрутизацияПрямогоПодключения, ПоддержкаСеансаСистемы, РоумингНаУровнеПриложения, ..., ТребуетсяСеансСети } |
Открытые функции
| QNetworkConfigurationManager(QObject *parent = Q_NULLPTR) | |
| виртуальный | ~QNetworkConfigurationManager() |
| QList<QNetworkConfiguration> | всеКонфигурации(QNetworkConfiguration::StateFlags filter = QNetworkConfiguration::StateFlags()) const |
| QNetworkConfigurationManager::Возможности | возможности() const |
| QNetworkConfiguration | конфигурацияПоИдентификатору(const QString &identifier) const |
| QNetworkConfiguration | по умолчаниюКонфигурация() const |
| bool | вСети() const |
- 31 открытых функций, унаследованных от QObject
Открытые слоты
| void | обновитьКонфигурации() |
- 1 открытый слот, унаследованный от QObject
Сигналы
| void | конфигурацияДобавлена(const QNetworkConfiguration &config) |
| void | конфигурацияИзменена(const QNetworkConfiguration &config) |
| void | конфигурацияУдалена(const QNetworkConfiguration &config) |
| void | изменилсяСостояниеСети(bool isOnline) |
| void | обновлениеЗавершено() |
- 2 сигнала, унаследованные от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 11 статических открытых членов, унаследованных от QObject
- 9 защищённых функций, унаследованных от QObject
Подробное описание
Класс QNetworkConfigurationManager управляет сетевыми конфигурациями, предоставляемыми системой.
QNetworkConfigurationManager предоставляет доступ к сетевым конфигурациям, известным системе, и позволяет приложениям определять возможности системы (в отношении сетевых сеансов) во время выполнения.
Класс QNetworkConfiguration абстрагирует набор параметров конфигурации, описывающих, как необходимо настроить сетевой интерфейс для подключения к конкретной целевой сети. QNetworkConfigurationManager поддерживает и обновляет глобальный список QNetworkConfigurations. Приложения могут получить доступ к этому списку и отфильтровать его с помощью всеКонфигурации(). Если добавляется новая конфигурация или удаляется или изменяется существующая, соответственно, отправляются сигналы конфигурацияДобавлена(), конфигурацияУдалена() и конфигурацияИзменена().
Метод по умолчаниюКонфигурация() может быть использован, когда необходимо немедленно создать новый сетевой сеанс, не заботясь о конкретной конфигурации. Он возвращает конфигурацию QNetworkConfiguration::Discovered. Если таких конфигураций нет, возвращается недействительная конфигурация.
Некоторые обновления конфигурации могут потребовать некоторого времени для выполнения обновлений. Например, сканирование WLAN. Если платформа не выполняет внутренние обновления, может потребоваться вручную запустить обновления конфигурации с помощью обновитьКонфигурации(). Завершение процесса обновления отмечается отправкой сигнала обновлениеЗавершено(). Процесс обновления гарантирует, что каждый существующий экземпляр QNetworkConfiguration будет обновлён. Нет необходимости запрашивать обновлённый список конфигураций с помощью всеКонфигурации().
См. также QNetworkConfiguration.
Документация по типам членов
перечисление QNetworkConfigurationManager::Возможностьflags QNetworkConfigurationManager::Возможности
Определяет системные возможности API-интерфейса носителя. Возможные значения:
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfigurationManager::CanStartAndStopInterfaces |
0x00000001 |
Сеансы сети и их основанные на них точки доступа могут запускаться и останавливаться. Если этот флаг не установлен, QNetworkSession может только отслеживать, но не влиять на состояние точек доступа. На некоторых платформах для этой функции может потребоваться повышенные права пользователя. Этот параметр зависит от платформы и может быть не всегда доступен. |
QNetworkConfigurationManager::DirectConnectionRouting |
0x00000002 |
Сеансы сети и их сокеты могут быть привязаны к конкретному сетевому интерфейсу. Любой пакет, проходящий через сокет, направляется на указанный сетевой интерфейс, тем самым игнорируя стандартные записи таблицы маршрутизации. Это может быть полезно, когда два интерфейса могут достигать перекрывающихся диапазонов IP-адресов или у приложения есть определённые потребности в отношении целевых сетей. Этот параметр зависит от платформы и может быть не всегда доступен. |
QNetworkConfigurationManager::SystemSessionSupport |
0x00000004 |
Если этот флаг установлен, платформа гарантирует, что сетевой интерфейс не будет закрыт, пока не будет закрыт последний сетевой сеанс с помощью close(). Это работает для нескольких процессов. Если поддержка сеанса платформы отсутствует, этот API может гарантировать только указанное выше поведение для сетевых сеансов в рамках одного процесса. В целом мобильные платформы поддерживают это, в то время как большинство настольных платформ не обладают этой возможностью. |
QNetworkConfigurationManager::ApplicationLevelRoaming |
0x00000008 |
Система предоставляет приложениям контроль над поведением роуминга системы. Приложения могут инициировать роуминг (в случае, если текущая ссылка не подходит) и консультируются, если система выявила более подходящую точку доступа. |
QNetworkConfigurationManager::ForcedRoaming |
0x00000010 |
Система отключает существующую точку доступа и переподключается через более подходящую. Приложение не имеет никакого контроля над этим процессом и должно повторно подключить свои активные сокеты. |
QNetworkConfigurationManager::DataStatistics |
0x00000020 |
Если этот флаг установлен, QNetworkSession может предоставлять статистику о передаваемых и принимаемых данных. |
QNetworkConfigurationManager::NetworkSessionRequired |
0x00000040 |
Если этот флаг установлен, платформа требует создания сетевого сеанса перед выполнением сетевых операций. |
Тип Возможности — это синоним для QFlags<Возможность>. Он хранит логическое ИЛИ комбинацию значений Возможность.
Документация по функциям членов
QNetworkConfigurationManager::QNetworkConfigurationManager(QObject *parent = Q_NULLPTR)
Создаёт объект QNetworkConfigurationManager с заданным parent.
Обратите внимание, что для обеспечения немедленной доступности корректного списка текущих конфигураций, обновление выполняется во время создания, что вызывает некоторую задержку.
[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
Возвращает возможности, поддерживаемые текущей платформой.
[signal] void QNetworkConfigurationManager::configurationAdded(const QNetworkConfiguration &config)
Этот сигнал излучается всякий раз, когда к системе добавляется новая конфигурация сети. Новая конфигурация задаётся параметром config.
[signal] void QNetworkConfigurationManager::configurationChanged(const QNetworkConfiguration &config)
Этот сигнал излучается при изменении состояния state параметра config.
QNetworkConfiguration QNetworkConfigurationManager::configurationFromIdentifier(const QString &identifier) const
Возвращает QNetworkConfiguration для identifier; в противном случае возвращает некорректную QNetworkConfiguration.
См. также QNetworkConfiguration::identifier().
[signal] void QNetworkConfigurationManager::configurationRemoved(const QNetworkConfiguration &config)
Этот сигнал излучается, когда конфигурация собирается быть удалена из системы. Удаляемая конфигурация, заданная параметром config, недействительна, но сохраняет имя и идентификатор.
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().
[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().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qnetworkconfigurationmanager.html