Документация
ОС Аврора 5.1.0

Класс NetProxy

(Sailfish::Mdm::NetProxy)

Класс NetProxy управляет используемыми прокси-серверами. Подробнее…

Заголовочный файл: #include <mdm-netproxy.h>

Публичные типы

Свойства

Публичные методы

Сигналы

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

Класс NetProxy управляет используемыми прокси-серверами.

Может использоваться прямое подключение (без прокси-сервера), ручная настройка (используются указанные прокси-серверы) или автоматическая настройка (конфигурация прокси-сервера определяется из передаваемого PAC-файла).

Тип прокси-сервера определяется протоколом. Например, указание префикса http в режиме ручной настройки определит прокси-сервер как веб-прокси.

Прокси-серверы могут использоваться как отдельными службами, так и глобально. Использование глобального прокси-сервера переопределит прокси-серверы, используемые для отдельных служб. Если того требует конфигурация глобального прокси-сервера, индивидуальные прокси-серверы могут быть отключены.

 CONFIG += link_pkgconfig
 PKGCONFIG += sailfishmdm

и затем #include <mdm-netproxy.h>.

Пример использования:

 #include <mdm-netproxy.h>
 void setGlobalProxy(const QUrl &server)
 {
     auto proxy = new Sailfish::Mdm::NetProxy(nullptr);

     QObject::connect(proxy, &Sailfish::Mdm::NetProxy::validChanged, [proxy, server] {
         QString identifier = "global";
         bool found = proxy->selectProxy(identifier);

         if (found) {
             proxy->setType(Sailfish::Mdm::NetProxy::ProxyType::Manual);
             proxy->setManualProxies(QList<QUrl>({server}));
             proxy->setManualExclusions(QStringList());
         }
     });
 }

В примере ниже подразумевается, что имеется приложение, работающее в цикле, так что можно получать сигналы. Например, следующим образом:

 #include <QCoreApplication>
 #include <QTimer>
 #include <mdm-netproxy.h>

 int main(int argc, char *argv[])
 {
     QCoreApplication app(argc, argv);

     // Устанавливается глобальный прокси-сервер
     setGlobalProxy(QUrl("https://jolla.com"));

     // Небольшое ожидание, затем выход
     QTimer::singleShot(5000, [&app] {
         app.quit();
     });

     return app.exec();
 }

Описание типов класса

enum NetProxy::ActiveType

Указывает, работают ли прокси-серверы отдельных служб или глобальный прокси.

Работает либо одно, либо другое: это не может быть комбинация. Для более детального управления следует использовать прокси-серверы отдельных служб или глобальный файл PAC.

Константа Значение Описание
Sailfish::Mdm::NetProxy::Service 0 Прокси-серверы отдельных сервисов работают
Sailfish::Mdm::NetProxy::Global 1 Глобальный прокси работает

См. также activeType, setActiveType(), activeType() и activeTypeChanged().

enum NetProxy::ProxyType

Способ определения конфигурации прокси-сервера.

Константа Значение Описание
Sailfish::Mdm::NetProxy::Invalid 0 Способ определения конфигурации прокси-сервера не задан
Sailfish::Mdm::NetProxy::Direct 1 Используется прямое подключение (без прокси-сервера)
Sailfish::Mdm::NetProxy::Manual 2 Выбор из списка предварительно сконфигурированных прокси-серверов
Sailfish::Mdm::NetProxy::Automatic 3 Прокси-сервер определяется с помощью PAC-файла (Proxy Auto-Configuration)

См. также type, setType(), type() и typeChanged().

Описание свойств

activeType : ActiveType

Содержит активный режим использования прокси-сервера: индивидуальные прокси-серверы для служб или глобальный прокси-сервер.

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

Методы доступа:

  • ActiveType activeType() const
  • bool setActiveType(ActiveType type)

Сигнал уведомления:

См. также ActiveType, setActiveType() и activeTypeChanged().

automaticUrl : QUrl

Содержит путь (URL) к PAC-файлу для выбранной в настоящий момент службы.

Данная настройка применима только для автоматического способа определения конфигурации прокси-сервера (константа Automatic).

В этом случае используется PAC-файл, представляющий собой код на языке JavaScript, позволяющий выбрать нужный прокси-сервер в зависимости от деталей запроса. Данное свойство содержит путь к используемому PAC-файлу.

Методы доступа:

Сигнал уведомления:

См. также automaticUrl, setAutomaticUrl() и automaticUrlChanged().

manualExclusions : QStringList

Содержит исключённые домены для выбранной в настоящий момент службы.

Данная настройка применима только для ручного способа определения конфигурации прокси-сервера (константа Manual).

В этом случае запросы отправляются через прокси сервер, выбранный из списка предварительно сконфигурированных прокси-серверов. Однако, если запрашивается домен из списка исключённых доменов, то будет использоваться прямое подключение в обход прокси-сервера.

Методы доступа:

Сигнал уведомления:

См. также setManualExclusions() и manualExclusionsChanged().

manualProxies : QList<QUrl>

Содержит список прокси-серверов, из которых выбран настроенный вручную прокси-сервер.

Данная настройка применима только для ручного способа определения конфигурации прокси-сервера (константа Manual).

В этом случае запросы отправляются через прокси сервер, выбранный из списка предварительно сконфигурированных прокси-серверов.

Методы доступа:

  • QList<QUrl> manualProxies() const
  • bool setManualProxies(const QList<QUrl> &proxies)

Сигнал уведомления:

См. также setManualProxies() и manualProxiesChanged().

type : ProxyType

Содержит способ определения конфигурации прокси-сервера: прямое подключение, ручная или автоматическая настройки прокси-сервера.

Свойство применяется к активному режиму использования прокси-сервера: индивидуальные прокси-серверы для служб или глобальный прокси-сервер.

Может использоваться прямое подключение (без прокси-сервера, константа Direct), ручная настройка (используются указанные прокси-серверы, константа Manual) или автоматическая настройка (конфигурация прокси-сервера определяется из передаваемого PAC-файла, константа Automatic).

Методы доступа:

Сигнал уведомления:

См. также ProxyType, setType(), type() и typeChanged().

valid : const bool

Это свойство указывает, находится ли экземпляр NetProxy в допустимом состоянии.

Если состояние не установлено как допустимое, то основные функции (кроме тех, которые связаны с достоверностью экземпляра) ещё не должны использоваться.

При первоначальном создании экземпляра NetProxy он должен асинхронно собирать различные фрагменты данных из другой части системы. Флаг valid будет установлен как false, пока этот процесс не завершится.

Есть определённые события, которые могут привести к тому, что флаг снова изменится наfalse во время существования экземпляра. Чтобы отслеживать эти изменения, можно подключиться к сигналу validChanged().

Методы доступа:

  • bool isValid() const

Сигнал уведомления:

  • void validChanged(bool valid)

Описание методов класса

NetProxy::NetProxy(QObject *parent = nullptr)

Создаёт новый объект NetProxy с заданным parent.

[virtual] NetProxy::~NetProxy()

Деструктор для класса NetProxy. Деструктор является виртуальным.

[signal] void NetProxy::activeTypeChanged(ActiveType type)

Сигнал испускается при смене активного режима использования прокси-сервера type с использования индивидуальных прокси-серверов для служб на глобальный прокси-сервер и наоборот.

Примечание — Сигнал уведомления для свойства activeType.

См. также ActiveType, activeType, activeType() и setActiveType().

[signal] void NetProxy::automaticUrlChanged(const QUrl &url)

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

Сигнал испускается в случае, если используется автоматический способ конфигурации прокси-сервера и при этом изменяется url для PAC-файла с настройками.

Примечание — Сигнал уведомления для свойства automaticUrl.

См. также automaticUrl и setAutomaticUrl().

QString NetProxy::getIdentifier() const

Возвращает идентификатор выбранной в настоящий момент службы.

Этот идентификатор использовался изначально при выборе службы. Он также возвращается в числе прочих идентификаторов служб при вызове метода getIdentifiers().

Если выбран глобальный прокси-сервер, то в качестве идентификатора метод вернет значение global.

Если прокси-сервер не используется, возвращается пустая строка.

QStringList NetProxy::getIdentifiers(const QString &technology) const

Возвращает список уникальных идентификаторов для служб, которые поддерживают использование прокси-серверов.

Эти идентификаторы будут совпадать с идентификаторами, предоставляемыми демоном ConnMan. Обычно данный метод используется для извлечения нужного идентификатора с тем, чтобы впоследствии передать его в метод selectProxy().

Список идентификатором можно отфильтровать по используемой технологии, передав соответствующее значение в параметре technology. Если в параметре передана пустая строка, метод вернёт все идентификаторы вне зависимости от используемой технологии.

Помимо идентификаторов служб, в возвращаемом списке будет также присутствовать идентификатор global с соответствующей технологией global, что означает использование глобального прокси-сервера.

См. также getTechnologies() и selectProxy().

QString NetProxy::getName() const

Возвращает в удобочитаемом виде название выбранной в настоящий момент службы.

Для глобального прокси-сервера возвращается строка Global Proxy.

Если прокси-сервер не используется, возвращается пустая строка.

QStringList NetProxy::getTechnologies() const

Возвращает список сетевых технологий, которые поддерживают использование прокси-серверов.

Эти технологии будут совпадать с технологиями, предоставляемыми демоном ConnMan. Например, wifi или cellular. В возвращаемом списке будет также присутствовать технология global, что означает использование глобального прокси-сервера.

См. также getIdentifiers().

[signal] void NetProxy::manualExclusionsChanged(const QStringList &exclusions)

Изменился список исключённых доменов exclusions для ручной конфигурации прокси-сервера.

Сигнал испускается в случае, если используется ручной способ конфигурации прокси-сервера и при этом изменяется список исключенных доменов по ссылке в параметре exclusions.

Примечание — Сигнал уведомления для свойства manualExclusions.

См. также manualExclusions и setManualExclusions().

[signal] void NetProxy::manualProxiesChanged(const QList<QUrl> &proxies)

Изменился список прокси-серверов proxies для ручной конфигурации прокси-сервера.

Сигнал испускается в случае, если используется ручной способ конфигурации прокси-сервера и при этом изменяется список прокси серверов по ссылке в параметре proxies.

Примечание — Сигнал уведомления для свойства manualProxies.

См. также manualProxies и setManualProxies().

[signal] void NetProxy::proxyConfigChanged()

Сигнал испускается при изменении любого значения в конфигурации прокси-сервера для выбранной в настоящий момент службы.

Сюда входят способ определения конфигурации прокси-сервера, список серверов, список исключённых доменов и URL для PAC-файла. Сигнал также испускается в случае переключения с глобального прокси-сервера на индивидуальные прокси-серверы для служб и наоборот.

Для отслеживания изменений конкретного свойства удобнее подключиться к соответствующему сигналу.

bool NetProxy::selectProxy(const QString &identifier)

Выбирает прокси-сервер для дальнейшей работы.

На устройстве могут одновременно использоваться сразу несколько прокси-серверов. Для внесения изменения в конфигурацию конкретного прокси-сервера, относящегося к конкретной службе, прокси-сервер следует предварительно выбрать с помощью данного метода. После того, как прокси-сервер выбран, к нему можно применять другие методы класса NetProxy.

Типичный порядок действий таков: формируется список идентификаторов с помощью метода getIdentifiers(), передать идентификатор из этого списка по ссылке в параметр identifier метода selectProxy, выполнить дальнейшие операции над прокси-сервером с помощью методов класса NetProxy.

Для выбора глобального прокси-сервера в параметр identifier следует передать значение global. Значением параметра identifier может быть один из элементов списка, полученного путем вызова метода getIdentifiers().

В случае успешного выбора прокси-сервера возвращает true, в противном случае возвращает false.

См. также getIdentifiers().

bool NetProxy::setActiveType(ActiveType type)

Задаёт режим работы с прокси-серверами: индивидуальные прокси-серверы для служб или глобальный прокси-сервер.

Для установки режима следует передать соответствующее значение в параметр type.

Активным может быть только один из режимов, но не оба сразу. Данный метод позволяет переключаться между ними.

Возвращает true, если режим работы с прокси-серверами был установлен. Если активный режим не был изменён, возвращает false (например, при попытке установить режим в текущее значение).

В случае асинхронных ошибок метод завершается неудачей без дополнительного оповещения.

Примечание — Задающий метод для свойства activeType.

См. также ActiveType, activeType, activeType() и activeTypeChanged().

bool NetProxy::setAutomaticUrl(const QUrl &url)

Задаёт путь (URL) к PAC-файлу в значение url для выбранной в настоящий момент службы.

Данная настройка применима только для автоматического способа определения конфигурации прокси-сервера (константа Automatic).

В этом случае используется PAC-файл, представляющий собой код на языке JavaScript, позволяющий выбрать нужный прокси-сервер в зависимости от деталей запроса. Данное свойство содержит путь к используемому PAC-файлу.

В случае успешного изменения значения возвращает true, в противном случае возвращает false. Значение false может быть возвращено при попытке изменить значение на уже используемое или в случае, если в текущий момент не выбрано ни одной службы.

В случае асинхронных ошибок метод завершается неудачей без дополнительного оповещения.

Примечание — Задающий метод для свойства automaticUrl.

См. также automaticUrl и automaticUrlChanged().

bool NetProxy::setManualExclusions(const QStringList &exclusions)

Задаёт список исключенных доменов exclusions для выбранной в настоящий момент службы.

Данная настройка применима только для ручного способа определения конфигурации прокси-сервера (константа Manual).

В этом случае запросы отправляются через прокси сервер, выбранный из списка предварительно сконфигурированных прокси-серверов. Однако, если запрашивается домен из списка исключённых доменов, то будет использоваться прямое подключение в обход прокси-сервера.

В случае успешного изменения значения возвращает true, в противном случае возвращает false. Значение false может быть возвращено при попытке изменить значение на уже используемое или в случае, если в текущий момент не выбрано ни одной службы.

В случае асинхронных ошибок метод завершается неудачей без дополнительного оповещения.

Примечание — Задающий метод для свойства manualExclusions.

См. также manualExclusions и manualExclusionsChanged().

bool NetProxy::setManualProxies(const QList<QUrl> &proxies)

Задаёт список прокси-серверов proxies для дальнейшего выбора при использовании прокси-сервера, настроенного вручную.

Данная настройка применима только для ручного способа определения конфигурации прокси-сервера (константа Manual).

В этом случае запросы отправляются через прокси сервер, выбранный из списка предварительно сконфигурированных прокси-серверов proxies.

В случае успешного изменения значения возвращает true, в противном случае возвращает false. Значение false может быть возвращено при попытке изменить значение на уже используемое или в случае, если в текущий момент не выбрано ни одной службы.

В случае асинхронных ошибок метод завершается неудачей без дополнительного оповещения.

Примечание — Задающий метод для свойства manualProxies.

См. также manualProxies и manualProxiesChanged().

bool NetProxy::setType(ProxyType type)

Задаёт способ определения конфигурации прокси-сервера в значение type.

Может использоваться прямое подключение (без прокси-сервера, константа Direct), ручная настройка (используются указанные прокси-серверы, константа Manual) или автоматическая настройка (конфигурация прокси-сервера определяется из передаваемого PAC-файла, константа Automatic).

В случае успешного изменения значения возвращает true, в противном случае возвращает false. Значение false может быть возвращено при попытке изменить значение на уже используемое или в случае, если в текущий момент не выбрано ни одной службы.

В случае асинхронных ошибок метод завершается неудачей без дополнительного оповещения.

Примечание — Задающий метод для свойства type.

См. также ProxyType, type, type() и typeChanged().

ProxyType NetProxy::type() const

Возвращает используемый в настоящий момент способ определения конфигурации прокси-сервера.

Может использоваться прямое подключение (без прокси-сервера, константа Direct), ручная настройка (используются указанные прокси-серверы, константа Manual) или автоматическая настройка (конфигурация прокси-сервера определяется из передаваемого PAC-файла, константа Automatic).

Примечание — Задающий метод для свойства type.

См. также ProxyType и setType().

[signal] void NetProxy::typeChanged(ProxyType type)

Изменился способ определения конфигурации прокси-сервера type на прямое подключение, ручную или автоматическую настройку.

Сигнал испускается при смене способа определения конфигурации прокси-сервера type на прямое подключение, ручную или автоматическую настройку.

Примечание — Сигнал уведомления для свойства type.

См. также ProxyType, type, type() и setType().

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.