Класс QNetworkConfigurationManager
Класс QNetworkConfigurationManager управляет сетевыми конфигурациями, предоставляемыми системой. Подробнее...
| Заголовок: | #include <QNetworkConfigurationManager> |
| qmake: | QT += network |
| С момента: | Qt 4.7 |
| Наследует: | QObject |
Открытые типы
| Флаги | Возможности |
| Перечисление | Возможность { МожноЗапускатьИОстанавливатьИнтерфейсы, ПрямоеМаршрутированиеПодключений, ПоддержкаСистемныхСессий, РоумингНаУровнеПриложения, ..., ТребуетсяСессияСети } |
Открытые функции
| QNetworkConfigurationManager(QObject *parent = nullptr) | |
| виртуальный | ~QNetworkConfigurationManager() |
| QList<QNetworkConfiguration> | всеКонфигурации(QNetworkConfiguration::StateFlags filter = ...) 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
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов, унаследованных от QObject
Дополнительные унаследованные члены
Подробное описание
Класс QNetworkConfigurationManager управляет сетевыми конфигурациями, предоставляемыми системой.
QNetworkConfigurationManager предоставляет доступ к сетевым конфигурациям, известным системе, и позволяет приложениям определять возможности системы (в отношении сетевых сессий) во время выполнения.
Класс QNetworkConfiguration абстрагирует набор параметров конфигурации, описывающих, как должен быть настроен сетевой интерфейс для подключения к определенной целевой сети. QNetworkConfigurationManager поддерживает и обновляет глобальный список QNetworkConfigurations. Приложения могут получать доступ и фильтровать этот список через всеКонфигурации(). Если добавляется новая конфигурация или удаляется или изменяется существующая, соответственно, будут отправлены сигналы конфигурацияДобавлена(), конфигурацияУдалена() и конфигурацияИзменена().
Метод поУмолчаниюКонфигурация() можно использовать при намерении немедленно создать новую сетевую сессию, не заботясь о конкретной конфигурации. Он возвращает конфигурацию QNetworkConfiguration::Discovered. Если не существует ни одной обнаруженной, возвращается недействительная конфигурация.
Некоторые обновления конфигурации могут потребовать некоторого времени для выполнения обновлений. Например, сканирование WLAN. Если платформа не выполняет внутренние обновления, может потребоваться вручную инициировать обновления конфигурации с помощью QNetworkConfigurationManager::обновитьКонфигурации(). О завершении процесса обновления сигнализируется отправкой сигнала обновлениеЗавершено(). Процесс обновления гарантирует, что каждый существующий экземпляр QNetworkConfiguration будет обновлен. Нет необходимости запрашивать обновленный список конфигураций через всеКонфигурации().
См. также QNetworkConfiguration.
Документация по типам членов
перечисление QNetworkConfigurationManager::Возможностьфлаги 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 |
Если этот флаг установлен, платформа требует создания сетевой сессии перед выполнением сетевых операций. |
Тип Capabilities — это typedef для QFlags<Capability>. Он хранит логическое ИЛИ сочетание значений Capability.
Документация по членам-функциям
QNetworkConfigurationManager::QNetworkConfigurationManager(QObject *parent = nullptr)
Создаёт объект QNetworkConfigurationManager с заданным parent.
Обратите внимание, что для обеспечения немедленно доступного и корректного списка текущих конфигураций обновление выполняется во время создания, что приводит к некоторой задержке.
[virtual] QNetworkConfigurationManager::~QNetworkConfigurationManager()
Освобождает ресурсы, связанные с объектом QNetworkConfigurationManager.
QList<QNetworkConfiguration> QNetworkConfigurationManager::allConfigurations(QNetworkConfiguration::StateFlags filter = ...) 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)
Этот сигнал излучается, когда состояние 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/qt-5.12/qnetworkconfigurationmanager.html