Spec-Zone.ru › Qt 5.9

Класс QDBusServiceWatcher

Класс QDBusServiceWatcher позволяет отслеживать изменения служб шины. Подробнее...

Заголовок: #include <QDBusServiceWatcher>
qmake: QT += dbus
С тех пор: Qt 4.6
Наследует: QObject
  • Список всех членов, включая унаследованные

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

флаги WatchMode
перечисление WatchModeFlag { WatchForRegistration, WatchForUnregistration, WatchForOwnerChange }

Свойства

  • watchMode : WatchMode
  • watchedServices : QStringList
  • 1 свойство унаследовано от QObject

Функции публичного доступа

QDBusServiceWatcher(QObject *parent = Q_NULLPTR)
QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, WatchMode watchMode = WatchForOwnerChange, QObject *parent = Q_NULLPTR)
~QDBusServiceWatcher()
void addWatchedService(const QString &newService)
QDBusConnection connection() const
bool removeWatchedService(const QString &service)
void setConnection(const QDBusConnection &connection)
void setWatchMode(WatchMode mode)
void setWatchedServices(const QStringList &services)
WatchMode watchMode() const
QStringList watchedServices() const
  • 32 функции публичного доступа унаследованы от QObject

Сигналы

void serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner)
void serviceRegistered(const QString &serviceName)
void serviceUnregistered(const QString &serviceName)
  • 2 сигнала унаследованы от QObject

Дополнительные унаследованные члены

  • 1 слот публичного доступа унаследован от QObject
  • 11 статические члены публичного доступа унаследованы от QObject
  • 9 защищённые функции унаследованы от QObject

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

Класс QDBusServiceWatcher позволяет отслеживать изменения служб шины.

Объект QDBusServiceWatcher может уведомлять приложение об изменении владельца имени службы на шине. Он имеет три режима отслеживания:

  • Отслеживание только регистрации службы.
  • Отслеживание только отмены регистрации службы.
  • Отслеживание любых изменений владельца службы (по умолчанию).

Помимо создания или удаления, службы могут менять владельцев без операций unregister/register. Поэтому сигналы serviceRegistered() и serviceUnregistered() могут не быть вызваны в этом случае.

Этот класс более эффективен, чем использование сигнала QDBusConnectionInterface::serviceOwnerChanged(), поскольку позволяет получать только сигналы, в которых класс заинтересован.

См. также QDBusConnection.

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

перечисление QDBusServiceWatcher::WatchModeFlag флаги QDBusServiceWatcher::WatchMode

QDBusServiceWatcher поддерживает три различных режима отслеживания, которые настраиваются этим флагом:

Константа Значение Описание
QDBusServiceWatcher::WatchForRegistration 0x01 отслеживать только регистрацию службы, игнорируя любые сигналы, связанные с другими изменениями владельца службы.
QDBusServiceWatcher::WatchForUnregistration 0x02 отслеживать только отмену регистрации службы, игнорируя любые сигналы, связанные с другими изменениями владельца службы.
QDBusServiceWatcher::WatchForOwnerChange 0x03 отслеживать любые изменения владельца службы.

Тип WatchMode — псевдоним для QFlags<WatchModeFlag>. Он хранит логическое ИЛИ сочетание значений WatchModeFlag.

Документация по свойствам

watchMode : WatchMode

Свойство watchMode содержит текущий режим отслеживания для этого объекта QDBusServiceWatcher. Значение по умолчанию для этого свойства — QDBusServiceWatcher::WatchForOwnershipChange.

Функции доступа:

WatchMode watchMode() const
void setWatchMode(WatchMode mode)

watchedServices : QStringList

Свойство servicesWatched содержит список отслеживаемых служб.

Обратите внимание, что изменение этого списка с помощью setServicesWatched() — дорогостоящая операция. Если возможно, предпочтительнее изменять его с помощью addWatchedService() и removeWatchedService().

Функции доступа:

QStringList watchedServices() const
void setWatchedServices(const QStringList &services)

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

QDBusServiceWatcher::QDBusServiceWatcher(QObject *parent = Q_NULLPTR)

Создаёт объект QDBusServiceWatcher. Обратите внимание, что до тех пор, пока вы не установите соединение с помощью setConnection(), этот объект не будет генерировать никаких сигналов.

Параметр parent передаётся в QObject для задания родительского объекта для этого объекта.

QDBusServiceWatcher::QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, WatchMode watchMode = WatchForOwnerChange, QObject *parent = Q_NULLPTR)

Создаёт объект QDBusServiceWatcher и прикрепляет его к соединению connection. Кроме того, эта функция немедленно начинает отслеживать изменения watchMode для службы service.

Параметр parent передаётся в QObject для задания родительского объекта для этого объекта.

QDBusServiceWatcher::~QDBusServiceWatcher()

Удаляет объект QDBusServiceWatcher и освобождает все ресурсы, связанные с ним.

void QDBusServiceWatcher::addWatchedService(const QString &newService)

Добавляет newService в список служб, за которыми следит этот объект. Эта функция более эффективна, чем setWatchedServices(), и её следует использовать всякий раз, когда это возможно, для добавления служб.

QDBusConnection QDBusServiceWatcher::connection() const

Возвращает QDBusConnection, к которому прикреплен этот объект.

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

bool QDBusServiceWatcher::removeWatchedService(const QString &service)

Удаляет service из списка служб, за которыми следит этот объект. Обратите внимание, что уведомления D-Bus асинхронны, поэтому могут всё ещё существовать ожидающие доставки сигналы о service. Эти сигналы всё равно будут испускаться при обработке сообщений D-Bus.

Эта функция возвращает true если какие-либо службы были удалены.

[signal] void QDBusServiceWatcher::serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner)

Этот сигнал испускается всякий раз, когда этот объект обнаруживает изменение владельца службы, относящееся к службе serviceName. Параметр oldOwner содержит имя старого владельца, а newOwner — нового владельца. Оба oldOwner и newOwner — уникальные имена соединений.

Обратите внимание, что этот сигнал также испускается всякий раз, когда служба serviceName регистрировалась или отменялась. Если она была зарегистрирована, oldOwner будет содержать пустую строку, а если она была отменена, newOwner будет содержать пустую строку.

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

См. также serviceRegistered() и serviceUnregistered().

[signal] void QDBusServiceWatcher::serviceRegistered(const QString &serviceName)

Этот сигнал испускается всякий раз, когда этот объект обнаруживает, что служба serviceName стала доступна в шине.

См. также serviceUnregistered() и serviceOwnerChanged().

[signal] void QDBusServiceWatcher::serviceUnregistered(const QString &serviceName)

Этот сигнал испускается всякий раз, когда этот объект обнаруживает, что служба serviceName была отменена в шине и больше недоступна.

См. также serviceRegistered() и serviceOwnerChanged().

void QDBusServiceWatcher::setConnection(const QDBusConnection &connection)

Устанавливает подключение D-Bus, к которому прикреплен этот объект, равным connection. Все отслеживаемые службы будут перенесены в это подключение.

Обратите внимание, что объекты QDBusConnection используют подсчёт ссылок: QDBusServiceWatcher будет хранить ссылку на это подключение, пока оно существует. Подключение не закрывается, пока счётчик ссылок не станет нулём, поэтому это гарантирует, что любые уведомления будут получены, пока существует этот объект QDBusServiceWatcher.

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

void QDBusServiceWatcher::setWatchedServices(const QStringList &services)

Устанавливает список отслеживаемых служб D-Bus в services.

Обратите внимание, что установка всего списка означает удаление всех предыдущих правил для отслеживания служб и добавление новых. Это дорогостоящая операция и её следует избегать, если возможно. Вместо этого используйте addWatchedService() и removeWatchedService(), если вы можете манипулировать записями в списке.

Примечание: Функция-сеттер для свойства watchedServices.

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

QStringList QDBusServiceWatcher::watchedServices() const

Возвращает список служб D-Bus, за которыми ведётся наблюдение.

Примечание: Функция-геттер для свойства watchedServices.

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

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qdbusservicewatcher.html

Spec-Zone.ru

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