Класс QNetworkConfiguration
Класс QNetworkConfiguration предоставляет абстракцию одной или нескольких конфигураций точек доступа. Подробнее...
| Заголовок: | #include <QNetworkConfiguration> |
| qmake: | QT += network |
| С тех пор: | Qt 4.7 |
Этот класс был представлен в Qt 4.7.
Типы публичного доступа
| перечисление | BearerType { BearerUnknown, BearerEthernet, BearerWLAN, Bearer2G, Bearer3G, …, BearerLTE } |
| перечисление | Purpose { UnknownPurpose, PublicPurpose, PrivatePurpose, ServiceSpecificPurpose } |
| перечисление | StateFlag { Undefined, Defined, Discovered, Active } |
| флаги | StateFlags |
| перечисление | Type { InternetAccessPoint, ServiceNetwork, UserChoice, Invalid } |
Функции публичного доступа
| QNetworkConfiguration(const QNetworkConfiguration &other) | |
| QNetworkConfiguration() | |
| QNetworkConfiguration & | operator=(const QNetworkConfiguration &other) |
| ~QNetworkConfiguration() | |
| QNetworkConfiguration::BearerType | bearerType() const |
| QNetworkConfiguration::BearerType | bearerTypeFamily() const |
| QString | bearerTypeName() const |
| QList<QNetworkConfiguration> | children() const |
| int | connectTimeout() const |
| QString | identifier() const |
| bool | isRoamingAvailable() const |
| bool | isValid() const |
| QString | name() const |
| QNetworkConfiguration::Purpose | purpose() const |
| bool | setConnectTimeout(int timeout) |
| QNetworkConfiguration::StateFlags | state() const |
| void | swap(QNetworkConfiguration &other) |
| QNetworkConfiguration::Type | type() const |
| bool | operator!=(const QNetworkConfiguration &other) const |
| bool | operator==(const QNetworkConfiguration &other) const |
Подробное описание
QNetworkConfiguration инкапсулирует одну точку доступа или сеть обслуживания. В большинстве случаев единственная конфигурация точки доступа может быть сопоставлена одному сетевому интерфейсу. Однако один сетевой интерфейс не всегда может сопоставляться только с одной конфигурацией точки доступа. Несколько конфигураций для одного сетевого устройства могут включать несколько точек доступа. Примером устройства, которое может иметь такую конфигурацию, является смартфон, который позволяет пользователю управлять несколькими конфигурациями WLAN, в то время как само устройство имеет только одно сетевое устройство WLAN.
QNetworkConfiguration также поддерживает понятие сетевых сервисов. Это понятие позволяет сгруппировать несколько конфигураций точек доступа в один объект. Такая группа называется сетью обслуживания и может быть полезна в случаях, когда требуется сетевая сессия с определенной целевой сетью (например, корпоративная сеть). При использовании сети обслуживания пользователь обычно не заботится о том, какой из вариантов подключения выбран (например, корпоративная сеть WLAN или VPN через GPRS), пока он может получить доступ к целевому серверу компании. В зависимости от текущего местоположения и времени некоторые из точек доступа, составляющих сеть обслуживания, могут быть недоступны. Кроме того, можно включить автоматический переход к точкам доступа, что позволяет устройству динамически изменять конфигурацию сетевого интерфейса, сохраняя при этом подключение приложений к целевой сети. Это позволяет адаптироваться к изменяющейся среде и может оптимизировать затраты, скорость или другие сетевые параметры.
Специальные конфигурации типа UserChoice предоставляют конфигурацию-заполнитель, которая разрешается платформой в фактическую конфигурацию сети при открытии сессии. Не все платформы поддерживают концепцию конфигурации пользовательского выбора.
Состояния конфигурации
Список доступных конфигураций можно получить с помощью QNetworkConfigurationManager::allConfigurations(). Конфигурация может иметь несколько состояний. Состояние конфигурации Defined указывает, что конфигурация сохранена на устройстве. Однако конфигурация еще не готова к активации, так как, например, WLAN может быть недоступен в данный момент.
Состояние Discovered подразумевает, что конфигурация Defined и внешние условия таковы, что конфигурацию можно немедленно использовать для открытия новой сетевой сессии. Примером такого внешнего условия может быть подключение Ethernet-кабеля к устройству или доступность WLAN с указанным идентификатором сети.
Состояние Active подразумевает, что конфигурация Discovered. Конфигурация в этом состоянии в настоящее время используется приложением. У базового сетевого интерфейса есть действительная IP-конфигурация, и он может передавать IP-пакеты между устройством и целевой сетью.
Состояние Undefined указывает, что система имеет знания о возможных целевых сетях, но не может фактически использовать эти знания для подключения к ним. Примером такого состояния может быть зашифрованный WLAN, который был обнаружен, но пользователь фактически не сохранил конфигурацию, включающую необходимый пароль, что позволило бы устройству подключиться к нему.
В зависимости от типа конфигурации некоторые состояния являются временными. Подключение GPRS/UMTS почти всегда может быть Discovered, если сеть GSM/UMTS доступна. Однако если сеть GSM/UMTS теряет подключение, связанная конфигурация может изменить свое состояние с Discovered на Defined. Аналогичный случай может быть вызван доступностью WLAN. QNetworkConfigurationManager::updateConfigurations() можно использовать для ручного запуска обновлений состояний. Обратите внимание, что на некоторых платформах такие обновления не требуются, так как они неявно изменяют состояние после обнаружения. Если состояние конфигурации изменяется, все связанные экземпляры QNetworkConfiguration автоматически изменяют свое состояние.
См. также QNetworkSession и QNetworkConfigurationManager.
Документация по типам членов
перечисление QNetworkConfiguration::BearerType
Указывает тип носителя, используемого конфигурацией.
| Постоянная | Значение | Описание |
|---|---|---|
QNetworkConfiguration::BearerUnknown |
0 |
Тип носителя неизвестен или не указан. Функция bearerTypeName() может вернуть дополнительную информацию. |
QNetworkConfiguration::BearerEthernet |
1 |
Конфигурация предназначена для интерфейсов Ethernet. |
QNetworkConfiguration::BearerWLAN |
2 |
Конфигурация предназначена для интерфейса беспроводной локальной сети. |
QNetworkConfiguration::Bearer2G |
3 |
Конфигурация предназначена для интерфейса CSD, GPRS, HSCSD, EDGE или cdmaOne. |
QNetworkConfiguration::Bearer3G |
11 |
Конфигурация предназначена для интерфейса 3G. |
QNetworkConfiguration::Bearer4G |
12 |
Конфигурация предназначена для интерфейса 4G. |
QNetworkConfiguration::BearerCDMA2000 |
4 |
Конфигурация предназначена для интерфейса CDMA. |
QNetworkConfiguration::BearerWCDMA |
5 |
Конфигурация предназначена для интерфейса W-CDMA/UMTS. |
QNetworkConfiguration::BearerHSPA |
6 |
Конфигурация предназначена для интерфейса High Speed Packet Access (HSPA). |
QNetworkConfiguration::BearerBluetooth |
7 |
Конфигурация предназначена для интерфейса Bluetooth. |
QNetworkConfiguration::BearerWiMAX |
8 |
Конфигурация предназначена для интерфейса WiMAX. |
QNetworkConfiguration::BearerEVDO |
9 |
Конфигурация предназначена для интерфейса EVDO (3G). |
QNetworkConfiguration::BearerLTE |
10 |
Конфигурация предназначена для интерфейса LTE (4G). |
enum QNetworkConfiguration::Purpose
Определяет назначение конфигурации.
| Постоянная | Значение | Описание |
|---|---|---|
QNetworkConfiguration::UnknownPurpose |
0 |
Конфигурация не определяет никакого назначения. Это значение по умолчанию. |
QNetworkConfiguration::PublicPurpose |
1 |
Конфигурация может использоваться для общего доступа к интернету. |
QNetworkConfiguration::PrivatePurpose |
2 |
Конфигурация подходит для доступа к частной сети, например, к корпоративной интрасети. |
QNetworkConfiguration::ServiceSpecificPurpose |
3 |
Конфигурация может использоваться для доступа к услугам оператора (например, для получения сообщений MMS или потокового контента). |
enum QNetworkConfiguration::StateFlagflags QNetworkConfiguration::StateFlags
Определяет состояния конфигурации.
| Постоянная | Значение | Описание |
|---|---|---|
QNetworkConfiguration::Undefined |
0x0000001 |
Это состояние используется для временных конфигураций, таких как недавно обнаруженные сети WLAN, для которых пользователь еще не создал конфигурацию. |
QNetworkConfiguration::Defined |
0x0000002 |
Определённые конфигурации известны системе, но не могут быть сразу использованы (например, настроенная сеть WLAN находится вне зоны действия или кабель Ethernet не подключён). |
QNetworkConfiguration::Discovered |
0x0000006 |
Обнаруженная конфигурация может быть немедленно использована для создания новой QNetworkSession. Пример обнаруженной конфигурации — сеть WLAN, находящаяся в зоне действия. Если устройство выходит из зоны действия, флаг обнаружения снимается. Второй пример — конфигурация GPRS, которая, как правило, остаётся обнаруженной до тех пор, пока устройство находится в зоне покрытия сети. Конфигурация в этом состоянии также находится в состоянии QNetworkConfiguration::Defined. Если конфигурация является сетевой службой, этот флаг устанавливается, если хотя бы одна из конфигураций базовых точек доступа находится в состоянии Discovered. |
QNetworkConfiguration::Active |
0x000000e |
Конфигурация в настоящее время используется открытой сетевой сессией (см. QNetworkSession::isOpen()). Однако это не означает, что текущий процесс является тем, кто создал открытую сессию. Это просто указывает на то, что если новая QNetworkSession будет создана на основе этой конфигурации, QNetworkSession::state() вернёт QNetworkSession::Connected. Это состояние подразумевает состояние QNetworkConfiguration::Discovered. |
Тип StateFlags является псевдонимом для QFlags<StateFlag>. Он хранит логическое ИЛИ комбинацию значений StateFlag.
enum QNetworkConfiguration::Type
Этот перечисление описывает тип конфигурации.
| Постоянная | Значение | Описание |
|---|---|---|
QNetworkConfiguration::InternetAccessPoint |
0 |
Конфигурация указывает детали для одной точки доступа. Обратите внимание, что конфигурации типа InternetAccessPoint могут быть частью других QNetworkConfigurations типа ServiceNetwork. |
QNetworkConfiguration::ServiceNetwork |
1 |
Конфигурация основана на группе QNetworkConfigurations типа InternetAccessPoint. Все члены группы могут достигать одной и той же целевой сети. Этот тип конфигурации является обязательным требованием для поддерживающих роуминг сетевых сессий. На некоторых платформах этот тип конфигурации также может называться точкой доступа к сетевой службе (SNAP). |
QNetworkConfiguration::UserChoice |
2 |
Конфигурация является заглушкой, которая будет разрешена на платформе к фактической конфигурации, когда сессия открывается. В зависимости от платформы выбор может генерировать всплывающее окно, спрашивающее пользователя о его предпочтении. |
QNetworkConfiguration::Invalid |
3 |
Конфигурация недействительна. |
Документация функций-членов
QNetworkConfiguration::QNetworkConfiguration(const QNetworkConfiguration &other)
Создаёт копию объекта QNetworkConfiguration, содержащегося в other.
QNetworkConfiguration::QNetworkConfiguration()
Конструирует объект недействительной конфигурации.
См. также isValid().
QNetworkConfiguration &QNetworkConfiguration::operator=(const QNetworkConfiguration &other)
Копирует содержимое объекта QNetworkConfiguration, содержащегося в other, в текущий объект.
QNetworkConfiguration::~QNetworkConfiguration()
Освобождает ресурсы, связанные с объектом QNetworkConfiguration.
QNetworkConfiguration::BearerType QNetworkConfiguration::bearerType() const
Возвращает тип носителя, используемого этой сетевой конфигурацией.
Если тип носителя неизвестен, функция bearerTypeName() может использоваться для получения текстового имени типа носителя.
Недействительная сетевая конфигурация всегда возвращает значение BearerUnknown.
См. также bearerTypeName() и bearerTypeFamily().
QNetworkConfiguration::BearerType QNetworkConfiguration::bearerTypeFamily() const
Возвращает семейство типов носителя, используемых этой сетевой конфигурацией. Следующая таблица показывает, как значения bearerType() отображаются в значения bearerTypeFamily():
| тип носителя | семейство типов носителей |
|---|---|
| BearerUnknown, Bearer2G, BearerEthernet, BearerWLAN, BearerBluetooth | (тот же тип) |
| BearerCDMA2000, BearerEVDO, BearerWCDMA, BearerHSPA, Bearer3G | Bearer3G |
| BearerWiMAX, BearerLTE, Bearer4G | Bearer4G |
Недействительная конфигурация сети всегда возвращает значение BearerUnknown.
Эта функция была добавлена в Qt 5.2.
См. также bearerType() и bearerTypeName().
QString QNetworkConfiguration::bearerTypeName() const
Возвращает тип носителя, используемый этой конфигурацией сети, в виде строки.
Строка не переводится и поэтому не может быть показана пользователю. В следующей таблице показаны фиксированные сопоставления между BearerType и именем типа носителя для известных типов. Если BearerType неизвестен, эта функция может вернуть дополнительную информацию, если она доступна; в противном случае будет возвращена пустая строка.
| BearerType | Значение |
|---|---|
| BearerUnknown | Сеанс основан на неизвестном или неопределенном типе носителя. Значение возвращаемой строки описывает тип носителя. |
| BearerEthernet | Ethernet |
| BearerWLAN | WLAN |
| Bearer2G | 2G |
| Bearer3G | 3G |
| Bearer4G | 4G |
| BearerCDMA2000 | CDMA2000 |
| BearerWCDMA | WCDMA |
| BearerHSPA | HSPA |
| BearerBluetooth | Bluetooth |
| BearerWiMAX | WiMAX |
| BearerEVDO | EVDO |
| BearerLTE | LTE |
Эта функция возвращает пустую строку, если это недействительная конфигурация, конфигурация сети типа QNetworkConfiguration::ServiceNetwork или QNetworkConfiguration::UserChoice.
См. также bearerType() и bearerTypeFamily().
QList<QNetworkConfiguration> QNetworkConfiguration::children() const
Возвращает все дочерние конфигурации этой конфигурации сети в порядке приоритета. Первая дочерняя конфигурация в списке имеет наивысший приоритет.
Только конфигурации сетей типа ServiceNetwork могут иметь дочерние элементы. В противном случае эта функция возвращает пустой список.
int QNetworkConfiguration::connectTimeout() const
Возвращает таймаут подключения для этой конфигурации.
Эта функция была добавлена в Qt 5.9.
См. также setConnectTimeout.
QString QNetworkConfiguration::identifier() const
Возвращает уникальный и специфичный для платформы идентификатор для этой конфигурации сети; в противном случае возвращает пустую строку.
bool QNetworkConfiguration::isRoamingAvailable() const
Возвращает true , если эта конфигурация поддерживает роуминг; в противном случае возвращает false.
bool QNetworkConfiguration::isValid() const
Возвращает true , если этот объект QNetworkConfiguration действителен. Конфигурация может стать недействительной, если пользователь удалит конфигурацию или конфигурация была создана по умолчанию.
Добавление и удаление конфигураций можно отслеживать с помощью QNetworkConfigurationManager.
См. также QNetworkConfigurationManager.
QString QNetworkConfiguration::name() const
Возвращает отображаемое пользователем имя этой конфигурации.
Имя может быть именем базовой точки доступа или именем сети обслуживания, которое эта конфигурация представляет.
QNetworkConfiguration::Purpose QNetworkConfiguration::purpose() const
Возвращает назначение этой конфигурации.
Поле назначения может использоваться для программированного определения назначения конфигурации. Такая информация обычно является частью метаданных точки доступа или сети обслуживания.
bool QNetworkConfiguration::setConnectTimeout(int timeout)
Устанавливает таймаут подключения для этой конфигурации в timeout. Это позволяет управлять таймаутом, используемым QAbstractSocket для установления подключения.
Примечание: timeout задаётся в миллисекундах.
Предупреждение: Это не повлияет, если плагин носителя не имеет возможности CanStartAndStopInterfaces.
Возвращает true, если операция выполнена успешно.
Эта функция была добавлена в Qt 5.9.
См. также connectTimeout.
QNetworkConfiguration::StateFlags QNetworkConfiguration::state() const
Возвращает текущее состояние конфигурации.
void QNetworkConfiguration::swap(QNetworkConfiguration &other)
Меняет местами эту конфигурацию сети с other. Эта функция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 5.0.
QNetworkConfiguration::Type QNetworkConfiguration::type() const
Возвращает тип конфигурации.
Конфигурация может представлять собой одиночную конфигурацию точки доступа или набор конфигураций точек доступа. Такой набор называется сетью обслуживания. Конфигурация, основанная на сети обслуживания, потенциально может поддерживать роуминг сеансов сети.
bool QNetworkConfiguration::operator!=(const QNetworkConfiguration &other) const
Возвращает true , если эта конфигурация не совпадает с заданной конфигурацией other; в противном случае возвращает false.
bool QNetworkConfiguration::operator==(const QNetworkConfiguration &other) const
Возвращает true, если эта конфигурация совпадает с заданной конфигурацией other; в противном случае возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qnetworkconfiguration.html