Spec-Zone.ru › Qt 5.13

Класс QNetworkConfigurationManager

Класс QNetworkConfigurationManager управляет сетевыми конфигурациями, предоставляемыми системой. Подробнее...

Заголовок: #include <QNetworkConfigurationManager>
qmake: QT += network
С тех пор: Qt 4.7
Наследует: QObject

Этот класс был представлен в Qt 4.7.

  • Список всех членов, включая унаследованные

Типы публичного доступа

флаги Capabilities
перечисление Capability { CanStartAndStopInterfaces, DirectConnectionRouting, SystemSessionSupport, ApplicationLevelRoaming, ..., NetworkSessionRequired }

Публичные функции

QNetworkConfigurationManager(QObject *parent = nullptr)
виртуальный ~QNetworkConfigurationManager()
QList<QNetworkConfiguration> allConfigurations(QNetworkConfiguration::StateFlags filter = QNetworkConfiguration::StateFlags()) const
QNetworkConfigurationManager::Capabilities capabilities() const
QNetworkConfiguration configurationFromIdentifier(const QString &identifier) const
QNetworkConfiguration defaultConfiguration() const
bool isOnline() const

Открытые слоты

void updateConfigurations()

Сигналы

void configurationAdded(const QNetworkConfiguration &config)
void configurationChanged(const QNetworkConfiguration &config)
void configurationRemoved(const QNetworkConfiguration &config)
void onlineStateChanged(bool isOnline)
void updateCompleted()

Подробное описание

QNetworkConfigurationManager предоставляет доступ к сетевым конфигурациям, известным системе, и позволяет приложениям обнаруживать возможности системы (в отношении сетевых сессий) во время выполнения.

QNetworkConfiguration абстрагирует набор параметров конфигурации, описывающих, как сетевой интерфейс должен быть настроен для подключения к определенной целевой сети. QNetworkConfigurationManager сохраняет и обновляет глобальный список QNetworkConfigurations. Приложения могут получить доступ и отфильтровать этот список с помощью allConfigurations(). Если добавляется новая конфигурация или существующая удаляется или изменяется, соответственно, генерируются сигналы configurationAdded(), configurationRemoved() и configurationChanged().

Метод defaultConfiguration() можно использовать, когда требуется немедленно создать новую сетевую сессию, не заботясь о конкретной конфигурации. Он возвращает конфигурацию QNetworkConfiguration::Discovered. Если таковых нет, возвращается недействительная конфигурация.

Некоторые обновления конфигурации могут потребовать некоторого времени для выполнения. Пример — сканирование беспроводной сети. Если платформа не выполняет внутренних обновлений, может потребоваться вручную инициировать обновления конфигурации с помощью QNetworkConfigurationManager::updateConfigurations(). Завершение процесса обновления обозначается генерацией сигнала updateCompleted(). Процесс обновления гарантирует, что каждый существующий экземпляр QNetworkConfiguration обновлен. Нет необходимости запрашивать обновлённый список конфигураций с помощью allConfigurations().

См. также QNetworkConfiguration.

Документация по типам членов

enum QNetworkConfigurationManager::Capabilityflags QNetworkConfigurationManager::Capabilities

Указывает возможности системы 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.

Обратите внимание, что для обеспечения немедленного доступа к правильному списку текущих конфигураций обновление выполняется во время конструирования, что приводит к некоторой задержке.

[signal] void QNetworkConfigurationManager::configurationAdded(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.13/qnetworkconfigurationmanager.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API